gpt4 book ai didi

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

转载 作者:搜寻专家 更新时间:2023-10-31 23:02:40 24 4
gpt4 key购买 nike

我已经开始使用 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 进行日志记录 - 如何针对不同的环境进行配置?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13157330/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com