winstonjs 获取使用 winston.createLogger(...) 创建的记录器
winstonjs Get logger created with winston.createLogger(...)
问题
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;
后代的正式答案:
单个 node.js 进程中的多个 require() 调用不会创建模块的新实例。第一个会,然后后续调用将 return 引用第一个。这是设计使然,非常方便。
对于仍然希望能够在使用 createLogger()
创建的 winston 记录器时通过名称获得它的任何人,我没有找到答案。
但是,你可以这样做。
使用创建记录器winston.loggers.add(name, options)
使用获取记录器winston.loggers.get(name)
此外,Node JS require()
缓存模块。谁知道!
感谢您的帮助。
问题
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;
后代的正式答案:
单个 node.js 进程中的多个 require() 调用不会创建模块的新实例。第一个会,然后后续调用将 return 引用第一个。这是设计使然,非常方便。
对于仍然希望能够在使用 createLogger()
创建的 winston 记录器时通过名称获得它的任何人,我没有找到答案。
但是,你可以这样做。
使用创建记录器winston.loggers.add(name, options)
使用获取记录器winston.loggers.get(name)
此外,Node JS require()
缓存模块。谁知道!
感谢您的帮助。