发布于 2017-12-18 05:57:46 | 283 次阅读 | 评论: 0 | 来源: 网友投递

这里有新鲜出炉的Log4j教程,程序狗速度看过来!

Apache Log4j log记录软件

Log4j是Apache的一个开放源代码项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件、GUI组件,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志信息的级别,我们能够更加细致地控制日志的生成过程。最令人感兴趣的就是,这些可以通过一个配置文件来灵活地进行配置,而不需要修改应用的代码。


这篇文章主要介绍了 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


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


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

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


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

那么到这里,日志的配置基本就好了。而想要在程序里面引用直接就写成:

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

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


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


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


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

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



最新网友评论  共有(0)条评论 发布评论 返回顶部

Copyright © 2007-2017 PHPERZ.COM All Rights Reserved   冀ICP备14009818号  版权声明  广告服务