源码分析后,实现Log4j运行时修改日志级别思路就非常清晰了。

全局的日志级别保存在org.apache.log4j.Hierarchy#threshold中,是通过log4j.threshold配置项设置的,因我们基本不会配置这个配置项,所以可以不用管。

剩下的日志级别配置在Logger上。我们只要获取对应的Logger,设置其level属性即可:

1
2
Logger rootLogger = Logger.getRootLogger();
rootLogger.setLevel(Level.DEBUG);

嗯,就是这么简单。