bigbluebutton-Github/bigbluebutton-html5/imports/startup/server/logger.js

66 lines
1.4 KiB
JavaScript
Raw Normal View History

import { Meteor } from 'meteor/meteor';
import Winston from 'winston';
2017-06-03 03:25:02 +08:00
const Logger = new Winston.Logger();
2016-12-01 00:29:13 +08:00
Logger.configure({
2018-01-08 08:25:56 +08:00
levels: {
error: 0, warn: 1, info: 2, verbose: 3, debug: 4,
},
2016-12-01 00:29:13 +08:00
colors: {
error: 'red',
warn: 'yellow',
info: 'green',
verbose: 'cyan',
debug: 'magenta',
},
});
Meteor.startup(() => {
const LOG_CONFIG = Meteor.settings.private.log || {};
2018-01-08 08:25:56 +08:00
let { filename } = LOG_CONFIG;
const { level } = LOG_CONFIG;
// console logging
if (Meteor.isDevelopment) {
Logger.add(Winston.transports.Console, {
prettyPrint: false,
humanReadableUnhandledException: true,
colorize: true,
handleExceptions: true,
level,
});
}
2016-12-02 00:15:57 +08:00
// file logging
if (filename) {
// no file rotation
if (Meteor.isDevelopment) {
const path = Npm.require('path');
filename = path.join(process.env.PWD, filename);
Logger.add(Winston.transports.File, {
filename,
prettyPrint: true,
level,
prepend: true,
});
}
// daily file rotation
if (Meteor.isProduction) {
Winston.transports.DailyRotateFile = Npm.require('winston-daily-rotate-file');
Logger.add(Winston.transports.DailyRotateFile, {
filename,
datePattern: '.yyyy-MM-dd',
prepend: false,
level,
});
}
}
});
export default Logger;
2017-06-03 03:25:02 +08:00
export const logger = Logger;