winstonjs使用winston.createLogger创建记录器(...)

时间:2018-01-01 22:59:58

标签: javascript node.js logging winston

问题
Winston提供winston.loggers.get("logger name")以获取记录器。如何使用winston.createLogger(options) 创建记录器(它没有名称)

为什么我要问
我使用winston.createLogger(options)在文件中创建了一个记录器,然后使用module.exports导出创建的记录器。

我希望在整个应用程序中使用此记录器,但每次require("")时,都会调用createLogger(options),因此每次都会创建一个新的记录器。

代码示例

const winston = require('winston');

// this logger does not have a name!
// Thus, how do I get it.
const logger = winston.createLogger({});


module.exports = logger;

2 个答案:

答案 0 :(得分:2)

后人的正式答案:

单个node.js进程中的多个require()调用不会创建模块的新实例。第一个将,然后后续调用将返回对第一个的引用。这是设计,非常方便。

答案 1 :(得分:0)

对于那些仍然希望能够在使用<div id="abc"> <div id="123"> <p>Hello!</p> </div> <p>World</p> </div> <div id="def"> <p>Hello World</p> </div> 创建时按名称获取winston记录器的人,我还没有找到答案。

但是,你可以这样做。
使用 var formElement = <HTMLFormElement>document.getElementById('123'); formElement.style.display='block'; 创建记录器 使用 createLogger()

获取记录器

此外,Node JS winston.loggers.add(name, options)缓存模块。世界卫生组织KNEW!

感谢您的帮助。