zombiebox
Version:
ZombieBox is a JavaScript framework for development of Smart TV and STB applications
56 lines (41 loc) • 1.09 kB
JavaScript
const winston = require('winston');
const levels = {
output: 0,
error: 1,
warn: 2,
info: 3,
verbose: 4,
debug: 5,
silly: 6
};
winston.addColors({
output: 'bold'
});
const colorizeFormat = winston.format.colorize();
/* eslint-disable interfaced/no-param-reassign */
const rootLogger = winston.createLogger({
levels,
level: 'warn', // Default level used when zombiebox is used programmarically, CLI will override it
transports: [
new winston.transports.Console({
format: winston.format.printf((info) => {
if (['output', 'error', 'warn'].includes(info.level)) {
info = colorizeFormat.transform(info, {message: true});
}
if (['output', 'error', 'warn', 'info'].includes(rootLogger.level)) {
return info.message;
}
info.level = (info.level + ':' + info.label);
info = colorizeFormat.transform(info, {level: true});
const level = ('[' + info.level + ']');
return `${level} ${info.message}`;
})
})
]
});
const createChild = (label) => rootLogger.child({label});
module.exports = {
rootLogger,
levels,
createChild
};