![GitHub license](https://camo.githubusercontent.com/c473222c97c632278ebc85d7fe386f8be445c202109dc15278427e337c06486e/68747470733a2f2f696d672e736869656c64732e696f2f6769746875622f6c6963656e73652f6e69636b726f62657274732f68692d77696e73746f6e2e737667)
npm i @nickroberts/hi-winston
const { HiWinston } = require('@nickroberts/hi-winston');
const hiWinston = new HiWinston();
// root logger is required
hiWinston.add('root');
const a = hiWinston.add('a');
const ab = hiWinston.add('a.b');
a.info('a');
ab.info('ab');
/* console output:
${timestamp} [a] info: a
${timestamp} [root] info: a
${timestamp} [a.b] info: ab
${timestamp} [a] info: ab
${timestamp} [root] info: ab
*/
const { transports, format } = require('winston');
const { LogManager } = require('@nickroberts/hi-winston');
const getSimpleConsoleTransport = label =>
new transports.Console({
format: format.combine(
format.label({ label }),
format.printf(info => `[${info.label}] ${info.level}: ${info.message}`)
)
});
const config = {
transports: {
t1: getSimpleConsoleTransport('t1'),
t2: getSimpleConsoleTransport('t2')
},
loggers: {
a: {
transportNames: ['t1']
},
'a.b': {
transportNames: ['t1', 't2']
}
}
};
// root logger is automatically added if not in the config
const logManager = new LogManager(config);
const a = logManager.get('a');
const ab = logManager.get('a.b');
const abc = logManager.get('a.b.c');
a.info('a info');
ab.info('a.b info');
abc.info('a.b.c info');
/* console output:
[t1] info: a info
[t1] info: a.b info
[t2] info: a.b info
[t1] info: a.b info
[t1] info: a.b.c info
[t2] info: a.b.c info
[t1] info: a.b.c info
*/