举个例子,日志文件的配置是这个样得,如下:
1.log4j.logger.interface=
INFO,interface
2.log4j.appender.interface=
org.apache.log4j.DailyRollingFileAppender
3.log4j.appender.interface.File=
logs/interface/interface.log
4.log4j.appender.interface.DatePattern =
'.'yyyy-MM-dd
5.log4j.appender.interface.layout=
org.apache.log4j.PatternLayout
6.log4j.appender.interface.layout.ConversionPattern=
%d{yyyy-MM-dd HH:mm:ss.SSS}|%p|%c:%l|%m%n
7.
#log4j.appender.interface.MaxFileSize=10240KB
8.log4j.appender.interface.Encoding=
UTF-8
9.
#log4j.appender.interface.MaxBackupIndex=10
解析一下上面得日志:
第一行:日志的等级为info,一个interface的日志,格式就是如下:
log4j.rootLogger =
[ level ] , appenderName1, appenderName2, …
log4j.rootLogger =
日志级别,输出位置1,输出位置2...(
有时候会看到stdout,stdout是控制台输出)
第二行:每天产生一个日志文件,格式如下:
log4j.appender.appenderName =
className
这里是设置输出的目的地,是控制台?文件?你自己设置,有5种可以选
(1)
org.apache.log4j.ConsoleAppender(
控制台)
(2)
org.apache.log4j.FileAppender(
文件)
(3)o
rg.apache.log4j.DailyRollingFileAppender(
每天产生一个日志文件)
(4)
org.apache.log4j.RollingFileAppender(
文件大小到达指定尺寸的时候产生一个新的文件)
(5)
org.apache.log4j.WriterAppender(
将日志信息以流格式发送到任意指定的地方)
第三行:日志存放的位置和日志的名称
第四行:滚动日志文件,也就是多久产生一个新的文件
可以指定monthly(每月)、 weekly(每周)、daily(每天)、half-daily(每半天)、hourly(每小时)和
minutely(每分钟)六个频度,这是通过为 DatePattern选项赋予不同的值来完成的。DatePattern选
项的有效值为:
'.'yyyy-MM,对应monthly(
每月)
'.'yyyy-ww,对应weekly(
每周)
'.'yyyy-MM-dd,对应daily(
每天)
'.'yyyy-MM-dd-a,对应half-daily(
每半天)
'.'yyyy-MM-dd-HH,对应hourly(
每小时)
'.'yyyy-MM-dd-HH-mm,对应minutely(
每分钟)
第五行:日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(
以HTML表格形式布局),
org.apache.log4j.PatternLayout(
可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(
包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(
包含日志产生的时间、线程、类别等等信息)
第六行:日志指定布局输出的日志格式,打印格式格式化日志信息,如下:
%m
输出代码中指定的消息
%p
输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r
输出自应用启动到输出该log信息耗费的毫秒数
%c
输出所属的类目,通常就是所在类的全名
%t
输出产生该日志事件的线程名
%n
输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”
输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,
比如:
%d{yyy MMM dd HH:mm:ss ,SSS},
输出类似:
2002年10月18日 22 : 10 : 28 , 921
%l
输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。
第七行:
注释掉了,是一个文件的大小,超过了重新创建一个
第八行:日志文件的编码格式是哪一种
第九行:
注释掉了,是最多有多少个日志文件,不要和第七行混了
牢记:
1.Log4j有三个主要的组件:
Loggers(记录器),Appenders (输出源)和Layouts(布局)。
这里可简单理解为日志类别,日志要输出的地方和日志以何种形式输出。综合使用这
三个组件可以轻松地记录信息的类型和级别,并可以在运行时控制日志输出的样式和
位置。
Loggers组件在此系统中被分为五个级别:DEBUG、INFO、WARN、ERROR和FATAL。这
五个级别是有顺序的,DEBUG < INFO < WARN < ERROR < FATAL,分别用来指定这条
日志信息的重要程度,明白这一点很重要,Log4j有一个规则:只输出级别不低于设
定级别的日志信息
2、配置日志信息输出目的地(appender):
appenderName:自定义appderName,在log4j.rootLogger设置中使用;
className:有如下5种:
(1)org.apache.log4j.ConsoleAppender(控制台)
(2)org.apache.log4j.FileAppender(文件)
(3)org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件)
(4)org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件)
(5)org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)
3、配置日志信息的输出格式(Layout):
log4j.appender.appenderName.layout=className
className:可设值如下:
(1)org.apache.log4j.HTMLLayout(以HTML表格形式布局)
(2)org.apache.log4j.PatternLayout(可以灵活地指定布局模式)
(3)org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串)
(4)org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)