[springboot]使用log4j2异步日志提升性能

本文介绍了如何在SpringBoot应用中配置全局异步日志以提高性能,并探讨了异步/同步混合模式的选择,适用于资源有限但需良好日志性能的情况。同时提及面试题资源的相关性。
摘要由CSDN通过智能技术生成
<groupId>com.lmax</groupId>

<artifactId>disruptor</artifactId>

<version>3.3.6</version>



[]( )二、 全局异步模式

------------------------------------------------------------------



全局异步模式对日志的输出性能有非常大的提升,是官方推荐的异步日志输出方式。可以有两种方式为Spring Boot应用配置异步日志,第一种就是在应用启动类里面使用System.setProperty,代码如下:



@SpringBootApplication

public class BootLaunchApplication {

public static void main(String[] args) {

  //下面语句使得Log4j2日志输出使用异步处理,减小输出日志对性能的影响

  System.setProperty("Log4jContextSelector",

              "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");



  SpringApplication.run(BootLaunchApplication.class, args);

}

}




第二种是通过启动参数来设置全局异步日志



java -jar -DLog4jContextSelector=org.apache.logging.log4j.core.async.AsyncLoggerContextSelector boot-launch-1.0.jar




在以上配置完成之后,我们可以在log日志打印的位置下断点。当我们看到下图中红色边框部分的Log4j2-TF-1-AsyncLogger线程的时候,说明我们的全局异步日志配置成功了。



![在这里插入图片描述](https://img-blog.csdnimg.cn/59cc6339e83b48a0b78da950548e958f.png)



[]( )三、异步/同步混合模式

--------------------------------------------------------------------



除了全局异步模式,slf4j还支持异步/同步混合模式。全局异步模式虽然是性能最好的日志输出方式,但是也是耗费主机资源最多的方式,如果你的应用服务器性能一般,你又想获得较好的日志输出性能,可以采用如下的方法。



> 采用异步/同步混合模式就不需要配置第二小节中的Log4jContextSelector



在log4j2 xml里面对Loggers配置进行改造,加入`AsyncLogger`也就是异步日志,只针对`com.zimug.boot.launch`包(假如已知这个包对处理性能要求比较高)下的代码产生的日志采用异步模式,其他的日志仍然使用同步模式。



    <!-- 针对com.zimug.boot.launch包下面的日志采用异步日志 -->

    <AsyncLogger name="com.zimug.boot.launch" level="debug" additivity="false">

        <AppenderRef ref="CONSOLE" level="debug"/>

        <AppenderRef ref="FILE-APPENDER" level="info"/>

    </AsyncLogger>

最后

针对最近很多人都在面试,我这边也整理了相当多的面试专题资料,也有其他大厂的面经。希望可以帮助到大家。

下面的面试题答案都整理成文档笔记。也还整理了一些面试资料&最新2021收集的一些大厂的面试真题(都整理成文档,小部分截图)

在这里插入图片描述

最新整理电子书

在这里插入图片描述

真题(都整理成文档,小部分截图)

[外链图片转存中…(img-Hia4l7uN-1714152420699)]

最新整理电子书

[外链图片转存中…(img-ZkXPkNfS-1714152420699)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值