log4j1.x升级log4j2.x

前言

由于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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 137,154评论 19 139
  • Spring Boot 参考指南 介绍 转载自:https://www.gitbook.com/book/qbgb...
    毛宇鹏阅读 47,353评论 6 342
  • 这是在公司内部的一次升级实践,删除了很多隐私的内容,所以可能不是很完整。 1、背景 在任何系统中,日志都是非常重要...
    高广超阅读 10,718评论 2 35
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,345评论 1 13
  • 在应用程序中添加日志记录总的来说基于三个目的:监视代码中变量的变化情况,周期性的记录到文件中供其他应用进行统计分析...
    时待吾阅读 5,195评论 0 6

友情链接更多精彩内容