-
Rudolf Copi Eckelberg authoredRudolf Copi Eckelberg authored
log.js 1.64 KiB
const libs = `${process.cwd()}/libs`;
const config = require(`${libs}/config`);
const winston = require('winston');
winston.emitErrs = true;
function getFilePath(module) {
// using filename in log statements
return module.filename.split('/').slice(-2).join('/');
}
function logger(module) {
const logPath = `${process.cwd()}/logs`;
const maxLogFiles = 5;
const maxLogSize = 5242880;
const log = new winston.Logger({
transports: [
new winston.transports.File({
name: 'info-log',
level: 'info',
filename: `${logPath}/simcaq-info.log`,
handleException: true,
json: false,
maxSize: maxLogSize, // 5MB
maxFiles: maxLogFiles,
colorize: false,
}),
new winston.transports.File({
name: 'error-log',
level: 'error',
filename: `${logPath}/simcaq-error.log`,
handleException: true,
json: false,
maxSize: maxLogSize, // 5MB
maxFiles: maxLogFiles,
colorize: false,
}),
new winston.transports.Console({
name: 'debug-log',
level: (process.env.NODE_ENV === 'development') ? 'debug' : 'error',
label: getFilePath(module),
handleException: true,
json: false,
colorize: true,
}),
],
exitOnError: false,
});
if (!config.debug) {
log.remove('debug-log');
}
return log;
}
module.exports = logger;