网创优客建站品牌官网
为成都网站建设公司企业提供高品质网站建设
热线:028-86922220
成都专业网站建设公司

定制建站费用3500元

符合中小企业对网站设计、功能常规化式的企业展示型网站建设

成都品牌网站建设

品牌网站建设费用6000元

本套餐主要针对企业品牌型网站、中高端设计、前端互动体验...

成都商城网站建设

商城网站建设费用8000元

商城网站建设因基本功能的需求不同费用上面也有很大的差别...

成都微信网站建设

手机微信网站建站3000元

手机微信网站开发、微信官网、微信商城网站...

建站知识

当前位置:首页 > 建站知识

log4j2中日志异步打印的示例分析-创新互联

这篇文章给大家分享的是有关log4j2中日志异步打印的示例分析的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。

成都创新互联公司主要从事成都网站设计、网站制作、网页设计、企业做网站、公司建网站等业务。立足成都服务疏勒,十余年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:13518219792

log4j2支持日志的异步打印,日志异步输出的好处在于,使用单独的进程来执行日志打印的功能,可以提高日志执行效率,减少日志功能对正常业务的影响。

异步日志在程序的classpath需要加载disruptor-3.0.0.jar或者更高的版本。

Asynchronous Loggers是一个新增特性在Log4j 2 ,可以实现完全异步也可以和同步混合使用,还可以只异步化Appender,以提升系统性能,官方数据显示混合没有完全异步化效果好。

1,完全异步模式:

这种异步日志方式,不需要修改原来的配置文件,Logger仍然使用 and

只需要在主程序代码开头,加一句系统属性的代码:

System.setProperty("Log4jContextSelector", "org.apache.logging.log4j.core.async.AsyncLoggerContextSelector");

或者设置启动参数:

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

2,异步和非异步混合输出模式

在配置文件中Logger使用,而且可以和混合使用。










%d %p %class{1.} [%t] %location %m %ex%n












这里需要注意的是,如果使用,includeLocation="true"是必须要设置才会有类路径等一些信息打印出来。

3,只异步化Appender

标签里增加如下标签

 

然后在或者标签中引用asyncAppender即可,这里includeLocation是增加在标签中的。



无论是完全异步模式还是混合模式,在Appender标签中,immediateFlush属性无论为true或者false,效果都是和设置false是一样的。

4,性能对比

完全异步 > 混合模式 > 只异步化Appender > 同步

5,疑问

使用混合异步模式进行多线程写日志测试的时候,偶尔会出现日志没有写完的情况。是不是主线程执行完了,不会等待写日志的线程执行完,就把进程给停掉了? 在主线程的最后sleep几秒,就没有再出现日志写不完的情况了。

感谢各位的阅读!关于“log4j2中日志异步打印的示例分析”这篇文章就分享到这里了,希望以上内容可以对大家有一定的帮助,让大家可以学到更多知识,如果觉得文章不错,可以把它分享出去让更多的人看到吧!


网页标题:log4j2中日志异步打印的示例分析-创新互联
网址分享:http://bjjierui.cn/article/jhsdg.html

其他资讯