我有几个模块 - 比如说server.js,module1.js,...,moduleN.js.
我想在server.js中定义日志文件:
winston.add(winston.transports.File, { filename: 'mylogfile.log' });
Run Code Online (Sandbox Code Playgroud)
然后在我的所有模块中使用它.
最好的方法是什么?我可以exports.winston=winston;在每个模块中然后在server.js中设置它,但有没有更好的解决方案?
先感谢您!
我为nodejs编写了这个模块,可用于从任何地方通过sockjs向客户端分发事件.
现在我想包括一些可配置的日志记录机制.
目前,我正在添加winston作为依赖项,要求它作为每个类中的记录器并使用logger.error,logger.warn,...
#logger.js
var logger = require('winston');
module.exports=logger;
Run Code Online (Sandbox Code Playgroud)
和
#myClass
var logger = require("./logger");
logger.error("Something went wrong")
Run Code Online (Sandbox Code Playgroud)
现在,如何让记录器可以被自定义记录器替换,或者让用户从OUTSIDE my module配置日志级别?
他们当然不必触摸模块代码来更改记录器,但能够使用loglevel创建记录器,我的模块应该使用它(如果可用).
有关如何做到这一点的任何推荐?
或者是对"winston"的硬依赖,并且可以通过npm-config配置日志级别吗?