M.J*_*.J. 14 java logging log4j
我有一个问题,我想在运行时更改log4j的日志记录级别,我已经尝试了很多东西与log4j.properties文件,我也尝试编写一个代码,在特定时间后再次读取属性文件并再次配置记录器.
但问题是,我想将一个API调用的日志记录级别更改为DEBUG,然后当该调用完成时,记录器应再次更改为之前的值.
请帮忙..
coo*_*ird 19
Logger.setLevel使用所需方法调用方法Level可以Logger在运行时更改输出级别.
以下是演示其用法的示例:
Logger logger = Logger.getLogger("myLogger");
logger.addAppender(new ConsoleAppender(new SimpleLayout()));
System.out.println("*** The current level will be INFO");
logger.setLevel(Level.INFO);
logger.warn("Only INFO and higher will appear");
logger.info("Only INFO and higher will appear");
logger.debug("Only INFO and higher will appear");
System.out.println("*** Changing level to DEBUG");
// remember the previous level
Level previousLevel = logger.getLevel();
logger.setLevel(Level.DEBUG);
logger.warn("DEBUG and higher will appear");
logger.info("DEBUG and higher will appear");
logger.debug("DEBUG and higher will appear");
System.out.println("*** Changing level back to previous level");
// revert to previous level
logger.setLevel(previousLevel);
logger.warn("Only INFO and higher will appear");
logger.info("Only INFO and higher will appear");
logger.debug("Only INFO and higher will appear");
Run Code Online (Sandbox Code Playgroud)
以上输出:
*** The current level will be INFO
WARN - Only INFO and higher will appear
INFO - Only INFO and higher will appear
*** Changing level to DEBUG
WARN - DEBUG and higher will appear
INFO - DEBUG and higher will appear
DEBUG - DEBUG and higher will appear
*** Changing level back to previous level
WARN - Only INFO and higher will appear
INFO - Only INFO and higher will appear
Run Code Online (Sandbox Code Playgroud)
上面演示了如何更改一个Logger命名的级别myLogger,但是如果应该更改当前存储库中所有记录器的级别,则应调用获取setLevel的根记录器上的方法Logger.getRootLogger来更改所有子记录器上的级别.
可以setLevel通过@coobird描述的调用来更改记录器的日志级别.但是,有一个问题!
当您调用时getLogger(name),Logger如果可能,日志库将返回现有对象.如果两个或多个线程请求具有相同名称的记录器,则它们将获得相同的对象.如果其中一个线程调用setLevel,这将更改所有其他线程的记录器级别.这可能会导致意外行为.
如果你真的需要做这种事情,更好的方法是为你想要在不同级别登录的情况创建一个具有不同名称的记录器.
但是,我根本不相信应用程序调用的智慧setLevel.该setLevel方法是关于过滤日志消息,您不应该从用户/部署者那里夺取对日志过滤的控制权.
| 归档时间: |
|
| 查看次数: |
25142 次 |
| 最近记录: |