时间:2021-05-19
log4j 详解异步日志的配置和测试
日志可以帮助我们分析故障原因,做些数据挖掘的工作。最简单的日志方法,就是自己写个写文件的方法,在需要打日志的时候调用下,但是这显然不可能在实际工程上用。还有个问题,就是频繁地打日志,会增加磁盘I/O,使得系统性能下降。这里用log4j这个库来部署一个含有日志管理的轻量级的系统,主要支持日志的异步写和等级分类的功能,完成最低限度的日志需求。
首先,我们建立一个Maven工程,并且在pom.xml文件里面引入log4j的依赖:
<dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.2</version> </dependency>接着,我们在src/main/resources路径下面创建一个配置文件:log4j.xml
其实xml配置文件的内容是至关重要的,里面必须定义日志的等级、是否异步等属性。这里我通过截图来简单说明几个关键点。完整的配置文件会随这篇博客一起上传。
这里关于日志等级需要多解释一下,这里的日志等级默认是debug:
所以如果不像上图中利用日志过滤器来定义日志等级,那么最后ERROR日志的会写到INFO日志的文件里,导致日志管理混乱。所以需要来设置这个日志等级的问题。
这张图需要解释的不多,主要是异步日志的配置。
那么到这里,日志的配置基本就好了。而想要在程序里面引用直接就写成:
然后调用log.info,log.error等方法就可以写日志了。注意我们设了2KB的大小,因此日志会累计到2KB再去写。所以并不是实时的,但这样可以减少频繁的磁盘I/O,在压测的时候可以避免由于I/O所带来的CPU的损耗。
接着我们写一段简单的测试程序来验证我们的配置是否正确。
这段代码的功能很简单:迭代计数到10W,然后将10的倍数写到error日志里,非10的倍数写到info日志里面。运行该程序,就会在相应的文件里打印出响应的结果。具体的日志结果如下图:
需要注意的是,当天的日志不会马上加上日期,隔了一天后会显示日期(如何马上显示当天的日期,楼主还没搞定)。info和error日志中的内容如下:
可见,通过我们之前之前的配置,我们可以按照我们的意思来正确地打印日志。ok,就先写到这里。
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
log4j配置文件的三个主要的组件:Logger,Appender和Layout,分别为日志类型,日志输出目的地,日志输出格式。log4j.rootLogger
IDEA中log4j无法输出到本地,properties配置无效问题。log4j添加以后无法输出日志信息,经检查(按以下顺序):1.jar包导入正常2.log4
log4j、logback、Log4j2简介log4j是apache实现的一个开源日志组件logback同样是由log4j的作者设计完成的,拥有更好的特性,用来
一、logback日志技术介绍SpringBoot中使用的日志技术为logback。其与Log4J都出自同一人,性能要优于Log4J,是Log4J的替代者。在S
介绍目前常用的Java日志框架有Log4j、Logback、Log4j2,性能方面推荐使用异步的Log4j2,具体对比不多做分析,前人早已完成耕荒,我们就站在巨