官方建议一般程序员查看的日志改成异步方式,一些运营日志改成同步。日志异步输出的好处在于,使用单独的进程来执行日志打印的功能,可以提高日志执行效率,减少日志功能对正常业务的影响。异步日志在程序的classpath需要加载disruptor-3.0.0.jar或者更高的版本。
异步日志分为两种:
a.全异步模式
这种异步日志方式,不需要修改修改原理的配置文件,Logger仍然使用<root>
and <logger>
只需要在主程序代码开头,加一句系统属性的代码:
System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");
b.异步和非异步混合输出模式
在配置文件中Logger使用<asyncRoot>
or <asyncLogger>