首页 > 解决方案 > 如何在运行时更改 log4j 中的日志记录级别而不重新启动码头服务器?

问题描述

.setlevel() 选项的选项有很多答案,由于以下原因,这在我的情况下不起作用。

设想:

代码:

private static Logger logger = Logger.getLogger(test.class);
private static final boolean DEBUG = logger.isDebugEnabled();


if(DEBUG){ //DEBUG will be false as the logging level is set to ERROR
logger.debug("This should print,but it will not print as DEBUG will be set as false during startup"); 
}

提前感谢您的建议。

标签: springlog4jwarslf4jjetty-9

解决方案


2个解决方案:

1.纠正一个

将您的模式更改为所需的模式。您不应该像那样在运行时更改日志记录级别。在测试平台上,您的日志级别应该是DEBUG. 生产时,INFO.

2.脏一

请参阅使用 slf4j 和 log4j2 动态添加附加程序。它应该是您最新的解决方案。


推荐阅读