butter-bot
Version:
I'm an opdroid seeking purpose.
59 lines (53 loc) • 1.74 kB
JavaScript
const fs = require('fs');
const winston = require('winston');
/**
* Utility class for logging.
*/
class ButterLog {
/**
* Initializes the logger and its outputs.
*/
static init(level) {
try {
if (!fs.existsSync('./logs')) {
fs.mkdirSync('./logs');
}
} catch (e) { }
this.logger = winston.createLogger({
level: "info",
format: winston.format.combine(
winston.format.timestamp(),
winston.format.align(),
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
),
transports: [
new winston.transports.File({filename: 'logs/error.log', level: 'error'}),
new winston.transports.File({filename: 'logs/butter.log'})
]
});
this.logger.add(new winston.transports.Console({
level: level || "info",
format: winston.format.combine(
winston.format.colorize(),
winston.format.timestamp(),
winston.format.align(),
winston.format.printf(info => `${info.timestamp} ${info.level}: ${info.message}`)
)
}));
if (!fs.existsSync('./logs')) {
this.logger.warn('Could not create `logs` directory. Log files may not be written to disk.');
}
}
/**
* Helper function for module export, to fetch logger instance.
*
* @returns {*}
*/
static getLogger() {
return this.logger;
}
}
module.exports = {
util: ButterLog,
default: ButterLog.getLogger
};