Winston中是否有等效的log.IsDebugEnabled?

Tho*_*att 5 logging node.js winston

log.IsDebugEnabled温斯顿有相同的东西吗?

我想使用它来跳过生产环境中昂贵的日志代码,但让它在开发中执行.

例如:

if(winston.isDebugEnabled){
   // Call to expensive dump routine here
   dump();
}
Run Code Online (Sandbox Code Playgroud)

检查winston.debug只检查方法是否已定义,而不是是否已启用.

非常感谢!


编辑:添加了代码示例.

Ben*_*ett 0

我确信您可以直接从 Winston 获取该信息,但如果您想为不同的环境设置不同的日志记录级别,则应该在创建 Winston.logger 时传递这些级别。

例如:

// 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
        })
    ]
});
Run Code Online (Sandbox Code Playgroud)

切换传输也很有用。例如,您可能希望在开发过程中使用控制台传输,而在生产过程中使用文件传输。

有关这一切的更多文档,请参见温斯顿自述文件