简体   繁体   English

Log4js:日志取决于NODE_ENV

[英]Log4js: logs depend on NODE_ENV

How can I make logs (INFO, ERROR) dependent on set NODE_ENV? 如何根据设置的NODE_ENV创建日志(INFO,ERROR)?

I mean, for example, if NODE_ENV=development, I write only ERROR logs. 我的意思是,例如,如果NODE_ENV =开发,我只写ERROR日志。 With NODE_ENV=production, there has to be only INFO. 使用NODE_ENV =生产时,必须只有INFO。

How should I modify appenders to perform this? 我应该如何修改appender来执行此操作?

Thanks for your help. 谢谢你的帮助。

I have found more appropriate (for me) solution of this problem. 我找到了更适合(对我来说)这个问题的解决方案。 Just configure categories in levels in this way: 只需以这种方式配置级别中的类别:

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

I needed to think a little before rushing to stackoverflow :) 在急于stackoverflow之前我需要先思考一下:)

With Log4js it looks like you just need to set the level on the logger depending on the environment variable, eg 使用Log4js,您只需要根据环境变量设置记录器上的级别,例如

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

Note that I switched your log levels around as how most logging works you want increasing levels of severity with ERROR being more serious than INFO. 请注意,我将您的日志级别切换为大多数日志记录的工作方式,您希望增加级别的严重性,而ERROR比INFO更严重。 In production you want only the most serious errors to be logged. 在生产中,您只需要记录最严重的错误。 In development you want to see serious errors as well as logs that are just for information. 在开发中,您希望看到严重错误以及仅供参考的日志。

如果您不想打印,请检查process.env.NODE_ENV并覆盖console.log

console.log = function(){}

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM