一、log4j常用布局
#log4j的配置文件
#配置根日志
#格式:log4j.rootLogger=级别,输出源1,输出源2......
log4j.rootLogger=INFO,FILE1,FILE2,FILE3
#配置输出源所对应的辅助类
#格式:log4j.appender.输出源=类名<类名可以不同形式>
log4j.appender.FILE1=org.apache.log4j.FileAppender
#指定文件名
log4j.appender.FILE1.File=e:/1.log
#指定布局方式(消息翻个如文件之后怎么布局)
log4j.appender.FILE1.layout=org.apache.log4j.SimpleLayout
#高级日志配置1
log4j.appender.FILE2=org.apache.log4j.FileAppender
log4j.appender.FILE2.File=e:/2.html
log4j.appender.FILE2.layout=org.apache.log4j.HTMLLayout
#高级日志配置2 自定义布局
log4j.appender.FILE3=org.apache.log4j.FileAppender
log4j.appender.FILE3.File=e:/3.log
log4j.appender.FILE3.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE3.layout.conversionPattern=%t;%p;%c;%m;%d;%l;%n
====================================================================
#%c:日志消息所在类名
#%d:发生时间
#%l:行数
#%n:换行
%表示output输入
p表示level
c表示调用的类
m表示log时的信息
n表示回车
M表示输出log时的信息的那个方法
F表示输出log时的信息的那个文件名
L表示输出log时的信息所在类的行数
LOG4J中PatternLayout的布局参数
ConversionPattern参数的格式含义
格式名 含义
%c 输出日志信息所属的类的全名,可以在其后指定继承的层数,比如{2}输出到其父类,{3}输出到父类的父类。
%d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy-MM-dd HH:mm:ss },输出类似:2002-10-18- 22:10:28
%M 输出日志信息所属的函数的名称、参数类型、返回类型。
%m 输出代码中指定的信息,如log(message)中的message
%n 输出一个回车换行符,Windows平台为“\r\n”,Unix平台为“\n”
%p 输出优先级,即DEBUG,INFO,WARN,ERROR,FATAL。如果是调用debug()输出的,则为DEBUG,依此类推。可以用%5p或者%-5p来强制输出5个字符,不足的在前面或者后面补充空格。
%r 输出自应用启动到输出该日志信息所耗费的毫秒数
%t 输出产生该日志事件的线程名
%f 输出日志信息所属的类的类名。(测试的结果似乎应该是%F,而且输出的是那个类的文件名)
%l 输出日志事件的发生位置,即输出日志信息的语句处于它所在的类的第几行
===========================================================================================
二、在Spring中配置Log4j
<!--如果不定义webAppRootKey参数,那么webAppRootKey就是缺省的"webapp.root"-->
<param-name>webAppRootKey</param-name>
<param-value>ssh.root</param-value>
</context-param>
<param-name>log4jConfigLocation</param-name>
<param-value>WEB-INF/log4j.properties</param-value>
</context-param>
<context-param>
<param-name>log4jRefreshInterval</param-name>
<param-value>60000</param-value>
</context-param>
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
log4j.appender.logfile.File=${webapp.root}/WEB-INF/logs/myfuse.log