当前,如果我运行logger.debug('message')
,我将得到这样的输出
{"message":"message","level":"debug"}
是否可以在创建记录器时做些什么,以便使消息看起来像这样?
{"message":"message","level":"debug","name":"someModule"}
最后,我想为每个模块自定义其自己的记录器,以便清楚地记录日志来自哪个模块
如果winston logger没有此功能,您可以推荐一个具有该功能的日志库吗?
答案 0 :(得分:1)
您可以使用custom-logger
您可以在其中定义以下内容:
var log = require('custom-logger').config({ format: "%message% %level%[%timestamp%]: %name%" });
还有一些更复杂的东西,例如:
log.new({
alert: { level: 3, color: 'red', event: 'alert', format: '!!!!!%event% : %message% !!!!!' name: '%name%' }
});
非常简单,例如:
log.info("I see %d %s!", 3, "bananas");
获取输出:输出“我看到3根香蕉!”
对于您的特定问题,您可以将其添加到代码中:
log.new({
debug: { message: "This is the message" , level :"debug", name: "Your module name"}
});
要使用库提供的标准,请执行以下操作:
log.new({
fatal: { message: "THIS IS THE END!" , level :"fatal", name: "Your module name"}
});
如果您想定义自己的颜色以得到更好的概览:
log.info().config({ color: 'cyan' }); //This should be declared as global
log.info('Hello World!');
此外,您可以分配
try {
eval('alert("Hello world)');
}
catch(error) {
console.error(error);
log.new({
error: { message: error, level :"error", name: "Your module name"}
});
}