Log4j,禁用依赖于环境的附加程序
来源:爱站网时间:2021-09-16编辑:网友分享
我希望拥有一个log4j.xml配置,并且能够在开发应用程序时登录到控制台。部署到环境后,我只想登录到文件附加器,而不要登录到控制台。怎么...
问题描述
我希望拥有一个log4j.xml配置,并且能够在开发应用程序时登录到控制台。部署到环境后,我只想登录到文件附加器,而不要登录到控制台。我该如何实现?
这是我当前的配置:
思路一:
开发和
生产环境的log4j配置文件,例如:
log4j-development.xml
-用于开发环境log4j-production.xml
-用于生产环境java -Dlog4jconfig=log4j-development.xml -jar Application.jar
log4jconfig
属性的值来配置log4j,例如System.getProperty("log4jconfig")
。该解决方案的优点如下:
您可以独立指定记录器(开发中为ConsoleAppender
和LogFileAppender
,生产中仅为LogFileAppender
)>
- 您可以指定每个环境的日志记录级别(例如,生产环境中的
- 您可以独立配置文件记录器,例如在生产中将日志保存X天(出于审计目的等),而在开发中仅保留一个日志文件,等等。
error
和开发环境中的debug
)>log4j-development.xml
[C0的示例
使用附加程序的log4j-production.xml
参数和JVM系统属性很容易做到。例如:
然后在使用
Threshold
的产品上启动应用程序时>在本地启动时同时使用
-Dmy.console.level=OFF
和-Dmy.console.level=ALL
均为有效的log4j级别。
使用Log4j2,您可以选择使用Java系统属性来切换附加器引用,如下所示:
OFF
(出于某种原因,必须在sys prop变量的默认值前面加上减号ALL
)
从默认的“滚动文件”切换到控制台”
思路二:
JVM
思路三:
OFF