Java web中使用Log4j记录日志信息

来源:互联网 发布:汉化软件安卓版下载 编辑:程序博客网 时间:2024/05/21 05:06
最近想记录一下Log4j的使用,抽了点时间通过收集网上的资料整理了这份博客,希望给需要用Log4j记录日志的朋友一点帮助,若有不对的地方,望指正。Log4j是Apache的一个开源项目,通过使用Log4j,我们可以控制日志信息输送的目的地是控制台、文件GUI组建,甚至是套接口服务器、NT的事件记录器、UNIX Syslog守护进程等;我们也可以控制每一条日志的输出格式;通过定义每一条日志的信息级别,我们能够更加细致地控制日志的生成过程。(摘自百度百科)Apache的Log4j主要包括三个部分。在应用中要使用Log4j来记录日志,首先要知道这三个部分的作用,才知道如何去配置Log4j来记录日志。这三部分分别是:日志信息的优先级、日志信息的输入目的地和日志信息的输出格式。下面就这三部分进行一个介绍,然后在最后给出一些例子讲解如何配置Log4j。一、日志级别日志级别,是告诉Log4j什么样级别的日志信息才被记录,主要包括以下几个级别(级别依次由低到高):ALL:各级别包括自定义的级别;DEBUG:一般用在细粒度上,对调试应用程序非常有帮助;INFO:一般用在细粒度上,强调应用程序的运行全程;WARN:指定具有潜在危害的情况;ERROR:指定虽然发生错误事件,但任然不影响系统运行;FATAL:指定非常严重的错误事件,可能会导致应用程序终止;OFF:最高的级别,指定关闭日志记录所有功能。二、日志信息输出目的地日志信息输出目的地,指定Log4j记录的日志信息输出到哪里。在日常的开发中,比较常用的有以下几种:1、org.apache.log4j.ConsoleAppender(控制台):可配置属性:Threshold:指定日志消息输出的最低级别InnediateFlush:日志消息是否立即输出,默认为trueTarget:指定由谁输出,默认是System.out2、org.apache.log4j.FileAppender(文件):可配置属性:Threshold:指定日志消息输出的最低级别encoding:可以指定任何字符编码,默认是特定平台的编码方案InnediateFlush:日志消息是否立即输出,默认为trueFile:指定日志输出到那个文件Append:指定日志信息是否是追加方式输出到文件中,默认为true3、org.apache.log4j.RollingFileAppender(指定日志文件到达一定的大小之后产生一个新文件):该配置继承与FileAppender,除了包括FileAppender可配置属性外,还包括以下属性:MaxFileSize:指定日志文件到达一定的大小后,新产生一个文件,可以指定单位有KB/MB/GBMaxBackupIndex:指定可以新产生多少个文件4、org.appche.log4j.DailyRollingFileAppender(每天产生一个日志文件):该配置继承与FileAppender,除了包括FileAppender可配置属性外,还包括以下属性:DatePattern:指定在什么时候产生一个新的日志文件,默认是0点,可指定的格式:'.'yyyy-MM:每个月的结束和下个月初'.'yyyy-MM-dd:默认值,每天0点'.'yyyy-MM-dd-a:每天0点和12点'.'yyyy-MM-dd-HH:每小时'.'yyyy-MM-dd-HH-mm:每分钟'.'yyyy-ww:每个星期的第一天5、org.apache.log4j.jdbc.JDBCAppender(记录日志信息到数据库):可配置属性:bufferSize:设置缓冲区的大小,默认为1driver:设置数据库驱动layout:设置日志使用的布局,默认是org.apache.log4j.PatternLayoutsql:指定语句在每次记录事件发生的时间执行,可以是insert/update/deleteurl:设置jdbc urluser:设置数据库用户名password:数据库密码  三、日志信息输出格式可配置的输出格式有以下几种:1、org.apache.log4j.HTMLLayout(以HTML表格形式布局)2、org.apache.log4j.PatternLayout(可以灵活指定布局格式)3、org.apache.log4j.SimpleLayout(包含日志的级别和信息字符串)4、org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等信息)通过以上的可配置布局,还需要指定org.appender.appendName.layout.ConversionPattern属性的具体格式,这里以一个例子说明:log4j.appender.R.layout.ConversionPattern=%-4r %-5p %d{yyyy-MM-dd HH:mm:ss} %c %m%n具体配置项如下说明:-X:日志信息输入左对齐%p:输出日志的级别%d:指定日期的输出格式%r:输出自应用启动到输出该log信息耗费的毫秒数%c:输出日志信息所属的类目,通常就是类全名%t:输出产生该日志时间的线程名%l:输出日志事件的发生位置,包括类名、发生的线程以及在代码中的行数%x:输出和当前线程相关联的嵌套诊断环境%%:输出一个“%”%F:输出日志消息产生是所在的文件名称%L:输出代码中的行号%m:输出代码中指定的日志信息%n:输出一个回车换行符介绍完Log4j的三个部分的常用配置,下面结合例子来展示一下真实环境中的配置例子:1、下载Log4j,下载完后把jar包拷到lib目录下下载地址:http://logging.apache.org/log4j/1.2/download.html2、编写配置文件,并把文件加入到classpath中:

这里写图片描述
3、在web.xml中配置启动服务器时启动Log4j 
这里写图片描述
4、在代码中加载Log4j配置信息: 
这里写图片描述

通过以上4个步骤,那么Log4j的环境就算搭建完成了。由于是基于java web搭建的Log4j,所以需要启动服务器来进行测试。这里我以执行一个sql为例子,下图是在某一段代码中使用了Log4j记录日志:

这里写图片描述

控制台输入日志:

这里写图片描述

日志文件输出:

这里写图片描述