欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  IT编程

log4j 详解异步日志的配置和测试

程序员文章站 2024-03-07 20:14:45
 log4j 详解异步日志的配置和测试 日志可以帮助我们分析故障原因,做些数据挖掘的工作。最简单的日志方法,就是自己写个写文件的方法,在需要打日志的时候调用下,...

 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

log4j 详解异步日志的配置和测试

其实xml配置文件的内容是至关重要的,里面必须定义日志的等级、是否异步等属性。这里我通过截图来简单说明几个关键点。完整的配置文件会随这篇博客一起上传。

log4j 详解异步日志的配置和测试

这里关于日志等级需要多解释一下,这里的日志等级默认是debug:

log4j 详解异步日志的配置和测试

所以如果不像上图中利用日志过滤器来定义日志等级,那么最后error日志的会写到info日志的文件里,导致日志管理混乱。所以需要来设置这个日志等级的问题。

log4j 详解异步日志的配置和测试

这张图需要解释的不多,主要是异步日志的配置。

那么到这里,日志的配置基本就好了。而想要在程序里面引用直接就写成:log4j 详解异步日志的配置和测试

然后调用log.info,log.error等方法就可以写日志了。注意我们设了2kb的大小,因此日志会累计到2kb再去写。所以并不是实时的,但这样可以减少频繁的磁盘i/o,在压测的时候可以避免由于i/o所带来的cpu的损耗。

接着我们写一段简单的测试程序来验证我们的配置是否正确。

log4j 详解异步日志的配置和测试

这段代码的功能很简单:迭代计数到10w,然后将10的倍数写到error日志里,非10的倍数写到info日志里面。运行该程序,就会在相应的文件里打印出响应的结果。具体的日志结果如下图:

log4j 详解异步日志的配置和测试

需要注意的是,当天的日志不会马上加上日期,隔了一天后会显示日期(如何马上显示当天的日期,楼主还没搞定)。info和error日志中的内容如下:

log4j 详解异步日志的配置和测试log4j 详解异步日志的配置和测试

可见,通过我们之前之前的配置,我们可以按照我们的意思来正确地打印日志。ok,就先写到这里。

感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!