log4j1.x升级log4j2.x

2017-12-18  本文已影响0人  coder_farmer

前言

由于log4j1.x用的是全局锁同步写log,大大影响了写日志的性能。所以决定把log4j1.x升级为log4j2.x,记录一下升级的过程和步骤。
log4j2.x性能较log4j1.x提升了10倍:

Log4j 2 包含了基于LMAX 分离库的下一代的异步日志系统,在多线程环境下,异步日志系统比 Log4j 1.x 和Logback提高了10倍性能提升(吞吐量和延迟率 )

依赖

删除原有的log4j1.x依赖,包括slf4j-log4j12,在有用到的地方通过pom文件exclude就好了。如下:

 <exclusions>
        <exclusion>
                <groupId>org.slf4j</groupId>
                <artifactId>slf4j-log4j12</artifactId>
         </exclusion>
         <exclusion>
                <groupId>log4j</groupId>
                <artifactId>log4j</artifactId>
         </exclusion>
 </exclusions>

为了不影响代码,我们还需要引用log4j1.x到log4j2.x的过渡包,如下:

log4j-1.2-api-2.5.jar
log4j-api-2.5.jar
log4j-core-2.5.jar
disruptor-3.3.4.jar(用于异步输出log)

配置

删除原有的配置文件log4j.properties
添加配置文件log4j2.xml
具体配置信息忽略

彻底的异步方式

下面是官方给出的log4j2异步日志的效率

log4j2
想要完全使用log4j2的异步方式输出日志,则需要在classpath路径下添加如下文件log4j2.component.properties
内容如下:

Log4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector

上一篇下一篇

猜你喜欢

热点阅读