node.js – 在Express.js中使用Winston进行日志记录 – 如何针对不同的环境进行配置?

发布时间:2020-09-30 发布网站:编程之家
编程之家收集整理的这篇文章主要介绍了node.js – 在Express.js中使用Winston进行日志记录 – 如何针对不同的环境进行配置?编程之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我已经开始使用 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' });
}

总结

以上是编程之家为你收集整理的node.js – 在Express.js中使用Winston进行日志记录 – 如何针对不同的环境进行配置?全部内容,希望文章能够帮你解决node.js – 在Express.js中使用Winston进行日志记录 – 如何针对不同的环境进行配置?所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您喜欢交流学习经验,点击链接加入编程之家官方QQ群:1065694478
编程之家官方公众号

微信公众号搜索 “ 程序精选 ” ,选择关注!

微信公众号搜索 “ 程序精选 ”
精选程序员所需精品干货内容!