首页 > 代码库 > Log4j

Log4j

  下面是一个示例Log4j.properties,需要放在classpath下,web应用放在WEB-INF的classes下即可。    

log4j.rootCategory=ALL, A1, Rlog4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%nlog4j.appender.R=org.apache.log4j.RollingFileAppenderlog4j.appender.R.File= F:\\webworkspace\\ssm\\src\\logs\\logs.log#发布时使用的路径,上面是方便调试  #log4j.appender.R.File= logs/ssm.loglog4j.appender.R.layout=org.apache.log4j.PatternLayoutlog4j.appender.R.layout.ConversionPattern=[DATE]            %d{DATE}%n[PRIORITY]     %p%n[NDC]          %x%n[THREAD]       %t%n[CATEGORY]  %c%n[LOCATION]    %l%n[MESSAGE]    %m%n%nlog4j.appender.R.MaxFileSize=100KBlog4j.appender.R.MaxBackupIndex=1#ibatis logger configlog4j.logger.com.ibatis=DEBUGlog4j.logger.java.sql=DEBUGlog4j.logger.org.logicalcobwebs=ERROR   

逐段解释:
log4j.rootCategory=ALL, A1, R
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
# Print the date in ISO 8601 format
log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n

ALL表示要记录的级别,日志的输出级别如下:
FATAL 0
ERROR 3
WARN 4
INFO 6
DEBUG 7

这里设置的是ALL,则所有的信息将被记录到日志。如果设置的是WARN,则只有WARN,ERROR,FATAL级别的日志会被输出,INFO和DEBUG级别的不会被输出。
A1, R指定了日志输出的2中格式,先理解为A1代表了到console的输出,R代表了到文件的输出,可以为对A1, R配置输出的路径,输出的格式等。

log4j.appender.A1=org.apache.log4j.ConsoleAppender指明A1代表了到console的输出,就是我们在使用IDE进行调试时console面板中将输出日志信息。
Log4j提供的appender有以下几种:
org.apache.log4j.ConsoleAppender(控制台),
org.apache.log4j.FileAppender(文件),
org.apache.log4j.DailyRollingFileAppender(每天产生一个日志文件),
org.apache.log4j.RollingFileAppender(文件大小到达指定尺寸的时候产生一个新的文件),
org.apache.log4j.WriterAppender(将日志信息以流格式发送到任意指定的地方)


log4j.appender.A1.layout=org.apache.log4j.PatternLayout指明了日志输出格式,Log4j提供的layout有以下几种:
org.apache.log4j.HTMLLayout(以HTML表格形式布局),
org.apache.log4j.PatternLayout(可以灵活地指定布局模式),
org.apache.log4j.SimpleLayout(包含日志信息的级别和信息字符串),
org.apache.log4j.TTCCLayout(包含日志产生的时间、线程、类别等等信息)


log4j.appender.A1.layout.ConversionPattern=%d [%t] %-5p %c - %m%n指明了输出的具体的格式,
%m 输出代码中指定的消息
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL
%r 输出自应用启动到输出该log信息耗费的毫秒数
%c 输出所属的类目,通常就是所在类的全名
%t 输出产生该日志事件的线程名
%n 输出一个回车换行符,Windows平台为“/r/n”,Unix平台为“/n”  %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss ,SSS},输出类似:2002年10月18日 22 : 10 : 28 , 921
%l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(TestLog4.java: 10 )


参照上面的参数定义,R所代表的日志输出格式的含义也就可以依据需求灵活的进行定制。
#ibatis logger config
log4j.logger.com.ibatis=DEBUG
log4j.logger.java.sql=DEBUG
log4j.logger.org.logicalcobwebs=ERROR 
是对ibatis 的操作进行日志记录。

Log4j