Log4js:日志依赖 NODE_ENV

Log4js: logs depend on NODE_ENV

如何使日志(INFO、ERROR)依赖于集合NODE_ENV?

我的意思是,例如,如果NODE_ENV=development,我只写错误日志。对于 NODE_ENV=production,必须只有 INFO。

我应该如何修改 appender 来执行此操作?

感谢您的帮助。

如果不想打印,请选中 process.env.NODE_ENV 并覆盖 console.log

console.log = function(){}

对于 Log4js,您似乎只需要根据环境变量在记录器上设置级别,例如

var logger = log4js.getLogger('myLogger');
if (process.env.NODE_ENV === 'production') {
  logger.setLevel('ERROR');
} else {
  logger.setLevel('INFO');
}

请注意,我切换了您的日志级别,因为大多数日志记录的工作方式是您希望提高严重级别,其中 ERROR 比 INFO 更严重。在生产环境中,您只想记录最严重的错误。在开发中,您希望看到严重错误以及仅供参考的日志。

我找到了更合适的 (对我来说) 这个问题的解决方案。 以这种方式在级别中配置类别:

...
      "levels": {
        "[all]": "INFO",
        "console": (env == "production" ? "ERROR" :"INFO")
      },
...

在赶到 Whosebug 之前我需要考虑一下 :)