log4j2异步日志配置,springboot使用log4j管理日志

  log4j2异步日志配置,springboot使用log4j管理日志

  00-1010一、介绍颠覆者二、全局异步模式三、异步/同步混合模式同步日志和日志打印的业务流程处理在同一个线程中。日志打印的过程其实就是写文件IO的过程,比较耗时,会阻塞主线程的执行。只有在日志打印完成后,业务处理代码才会继续执行。如果日志量大,会影响主业务流程的处理效率。异步日志实现:日志存储在单独的队列中,单独的线程从队列中获取日志,并将其写入磁盘文件。

  将日志放入队列所花费的时间肯定比在磁盘上写IO文件所花费的时间少得多,所以对主要业务流程的影响很小。一个单独的线程执行日志写IO磁盘操作,所以不会阻塞主业务线程的执行。

  00-1010Log4j2基于LMAX公司开发的Disruptor(一种开源的无锁并发框架),改进了Log4j和Logback在架构设计上的缺陷,具有超高的吞吐量和低延迟。所以要想获得log4j2异步日志带来的性能提升,首先要引入disruptor。

  !-需要使用Log4j进行异步日志记录2 -依赖关系groupIdcom.lmax/groupId artifactIddisruptor/artifactId版本3 . 3 . 6/版本/依赖关系

  00-1010全局异步模式大大提高了日志的输出性能,是官方推荐的异步日志输出模式。有两种方法可以为Spring Boot应用程序配置异步日志。第一种方法是在应用程序启动类中使用System.setProperty。代码如下:

  @ springbootapplicationpublic类bootlaunchapplication { public static void main(string[]args){//下面的语句使Log4j2日志输出使用异步处理,以减少输出日志对性能系统的影响。setproperty (log4j上下文选择器, org . Apache . logging . log4j . core . async . asyncloggercontextselector );spring application . run(bootlaunchapplication . class,args);}}二是通过启动参数设置全局异步日志。

  Java-jar-dlog 4 jcontext selector=org . Apache . logging . log4j . core . async . asyncloggercontextselector boot-launch-1.0 . jar以上配置完成后,我们就可以破点打印日志log了。当我们看到下图红色边框中的Log4j2-TF-1-AsyncLogger线程时,意味着我们的全局异步日志配置成功了。

  00-1010除了全局异步模式,slf4j还支持异步/同步混合模式。尽管全局异步模式是最好的日志输出模式,但它也消耗最多的主机资源。如果您的应用服务器性能一般,并且您希望获得更好的日志输出性能,您可以使用以下方法。

  使用异步/同步混合模式,不需要在第二部分配置Log4jContextSelector。

  log4j2 xml中修改了Loggers的配置,增加了AsyncLogger,即异步日志。只有com.zimug.boot.launch包中的代码生成的日志(如果知道这个包对处理性能要求很高)采用异步模式,其他日志仍然使用同步模式。

  伐木工!-对com.zimug.boot.launch包下的日志采用异步日志-异步日志记录器name= com . zimug . boot . launch level= debug additional= false appender ref= console level= de。bug /APPENDER ref ref= FILE-APPENDER level= info /async logger!-系统默认日志设置-root level= debug appenderef= console level= debug /appenderef= file-appender level= info /root/就是这样,GERS。本文介绍了如何使用log4j2异步日志来提高springboot的性能。有关springbootlog4j2异步日志的更多信息,请搜索热门IT之前的文章或继续浏览下面的相关文章。我希望你以后能更多地支持流行音乐!

郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。

留言与评论(共有 条评论)
   
验证码: