如何在部署时覆盖 log4j2 记录器的日志级别

问题描述 投票:0回答:0

我想在我的 jar 中提供一个 log4j2 属性文件,但在启动应用程序时覆盖它的设置。例如,默认级别可能是警告,但在调试时我想将日志级别更改为调试。我知道 log4j.configurationFile 系统属性,但这是解决此问题的大锤。我的属性文件如下:

rootLogger.level = warn 
rootLogger.appenderRefs = console 
rootLogger.appenderRef.stdout.ref = STDOUT

# By the way, if you don't have this, levels default to the rootLogger, it seems.
loggers=dt,storage

logger.dt = console
logger.dt.name = com.acme.foo
logger.dt.appenderRefs = console 
logger.dt.appenderRef.stdout.ref = STDOUT
logger.dt.level = info 

logger.acme= console
logger.acme.name = com.acme
logger.acme.appenderRefs = console 
logger.acme.appenderRef.stdout.ref = STDOUT
logger.acme.level = info 

appender.console.type = Console
appender.console.name = STDOUT
appender.console.layout.type = PatternLayout
appender.console.layout.pattern = %d{yyyy-dd HH:mm:ss} %p %l - %m%n

我可以做这样的事情吗?

java -Dlogger.dt.level=trace

java -Dlog4j.logger.dt.level=trace

似乎都不起作用。我还在How do I set log4j level on the command line?中尝试了AbuNassar的解决方案,但无济于事。

是我期待太多还是有别的办法?

谢谢。

java log4j
© www.soinside.com 2019 - 2024. All rights reserved.