kuzzle-plugin-logger
Version:
Kuzzle plugin that handles logs
61 lines (48 loc) • 1.54 kB
JavaScript
/*
* Kuzzle, a backend software, self-hostable and ready to use
* to power modern apps
*
* Copyright 2015-2017 Kuzzle
* mailto: support AT kuzzle.io
* website: http://kuzzle.io
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* https://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
;
const fs = require('fs');
const winston = require('winston');
const Service = require('./service');
class File extends Service {
constructor (customConfig) {
const defaultConfig = { level: 'error', filename: 'kuzzle.log' };
const config = Object.assign(defaultConfig, customConfig);
super(config);
// default file transport sets timestamp to true
if (config.addDate) {
this.addDate = true;
}
delete config.addDate;
delete config.dateFormat;
this.winston = winston.createLogger({
transports: [
new winston.transports.File(config)
]
});
if (config.filename) {
if (fs.existsSync(config.filename)) {
fs.accessSync(config.filename, fs.W_OK | fs.R_OK);
}
}
}
}
module.exports = File;