// default log file level is info (which is the lowest by default)
var logFileLevel = 'info';
if (process.env.NODE_ENV == 'production') {
// only write logs with a level of 'error' or above when in production
logFileLevel = 'error';
}
var logger = new (winston.Logger)({
transports: [
new (winston.transports.File)({
filename: '/var/log/node-logger.log',
level: logFileLevel
})
]
});
4条答案
按热度按时间rnmwe5a21#
我在日志记录器中添加了一个方法来实现这一点:
这会遍历你的日志记录器的每一个传输,并检查它是否“想要”记录指定的级别。注意_.any是lodash,你可以用for循环来替换。
fgw7neuy2#
我相信您可以直接从winston获得这些信息,但是如果您希望在不同的环境中使用不同的日志记录级别,则应该在创建winston.logger时传递这些信息。
例如:
切换出传输也很有用,例如,您可能希望在开发时使用控制台传输,而在生产时使用文件传输。
更多关于这一切的文档请参见winston readme。
xxhby3vn3#
试试看
vqlkdk9b4#
从Winston 3.1.0(PR)开始,您可以使用
Logger
函数isLevelEnabled(string)
和isXXXEnabled()
来实现这一点。