您的位置:首页 > 编程语言 > Java开发

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

2016-03-20 14:58 661 查看
最近想记录一下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:日志消息是否立即输出,默认为true
Target:指定由谁输出,默认是System.out
2、org.apache.log4j.FileAppender(文件):
可配置属性:
Threshold:指定日志消息输出的最低级别
encoding:可以指定任何字符编码,默认是特定平台的编码方案
InnediateFlush:日志消息是否立即输出,默认为true
File:指定日志输出到那个文件
Append:指定日志信息是否是追加方式输出到文件中,默认为true
3、org.apache.log4j.RollingFileAppender(指定日志文件到达一定的大小之后产生一个新文件):
该配置继承与FileAppender,除了包括FileAppender可配置属性外,还包括以下属性:
MaxFileSize:指定日志文件到达一定的大小后,新产生一个文件,可以指定单位有KB/MB/GB
MaxBackupIndex:指定可以新产生多少个文件
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:设置缓冲区的大小,默认为1
driver:设置数据库驱动
layout:设置日志使用的布局,默认是org.apache.log4j.PatternLayout
sql:指定语句在每次记录事件发生的时间执行,可以是insert/update/delete
url:设置jdbc url
user:设置数据库用户名
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.html
2、编写配置文件,并把文件加入到classpath中:




3、在web.xml中配置启动服务器时启动Log4j



4、在代码中加载Log4j配置信息:



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




控制台输入日志:




日志文件输出:


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  Log4j 日志