我想在我的 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的解决方案,但无济于事。
是我期待太多还是有别的办法?
谢谢。