我已经开始使用
Winston来记录我的node / express.js应用程序的错误和事件.
我还没想到的一件事是如何为不同的环境(开发/测试/生产)指定不同的Winston传输(或其他配置).例如.我希望在开发环境中将所有内容记录到控制台,但在生产中使用不同的传输.
有人知道怎么做吗?
解决方法
据我所知,没有“标准”方法可以做到这一点,但你可能会这样做:
var myLogTransports = []; if (process.env.NODE_ENV == 'production') { myLogTransports.push(new (winston.transports.File)({ filename: 'somefile.log' })); } else { myLogTransports.push(new (winston.transports.Console)({ level: 'error' }))); } var logger = new (winston.Logger)({ transports: myLogTransports,});
Winston现在支持动态添加记录器.有关更多信息,请参见Working with Transports部分.原始答案可以像这样重写:
var logger = new winston.Logger(); if (process.env.NODE_ENV == 'production') { logger.add(winston.transports.File,{ filename: 'somefile.log' }); } else { logger.add(winston.transports.Console,{ level: 'error' }); }
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。