log4j 使用摘要
1. 在web.xml中 加载log4j配置文件。
<context-param>
<param-name>log4jConfigLocation</param-name>
<!-- <param-value>classpath:/log4j.xml</param-value> -->
<param-value>classpath:log4j.properties</param-value>
</context-param>
<!-- 加载log4j配置文件 -->
<listener>
<listener-class>org.springframework.web.util.Log4jConfigListener</listener-class>
</listener>
- log4j 的属性配置文件。log4j.properties
log4j.rootCategory=debug, stdout, R
# 控制台
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
# 可以灵活地指定布局模式
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS}|%p|%t|%C{1}.%M|%m%n
# 每天产生一个日志文件(R)
log4j.appender.R=org.apache.log4j.DailyRollingFileAppender
#当天的日志文件全路径
log4j.appender.R.File=d\:\\log\\application\\ips.log
#服务器启动日志是追加,false:服务器启动后会生成日志文件把老的覆盖掉
log4j.appender.R.Append=true
#日志文件格式
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%d{yyyy-MM-dd HH\:mm\:ss,SSS}|%p|%t|%C{1}.%M|%m%n
# log4j.appender.R.Threshold=INFO
#设置每天生成一个文件名后添加的名称,备份名称:年月日.log
log4j.appender.R.DatePattern='.'yyyy-MM-dd'.log'
log4j.logger.net.sf.navigator=ERROR
log4j.logger.org.apache.commons=ERROR
log4j.logger.org.apache.struts=WARN
log4j.logger.org.displaytag=ERROR
log4j.logger.org.springframework=WARN
log4j.logger.org.apache.velocity=FATAL
log4j.logger.org.hibernate=WARN
log4j.logger.org.hibernate.SQL=Info
log4j.logger.org.springframework.web.servlet.handler.SimpleMappingExceptionResolver=WARN
ips.log.companyCode=1
ips.log.applicationCode=100
3.spring动态获取配置文件信息,通过配置PropertyPlaceholderConfigurer这个bean,就可以动态的获取这些。properties文件里的属性了,这样对于经常需要变动的配置文件来说就显的很方便了。
如果有多个.properties文件,则可以透过 locations 属性来设定,
<bean id="propertyConfigurer"
class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer">
<property name="locations">
<list>
<value>classpath:log4j.properties</value>
<value>classpath:initial.properties</value>
<value>classpath:database.properties</value>
</list>
</property>
</bean>
4.使用logger
直接在类中获取logger对象,调用其方法
private static final Logger logger = LoggerFactory.getLogger(LISGUnderWriteSynchroServiceImpl.class);
logger.debug ( Object message ) ;
logger.info ( Object message ) ;
logger.warn ( Object message ) ;
logger.error ( Object message ) ;
附录: 日志输出样式
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平台为"rn",Unix平台为"n" %d 输出日志时间点的日期或时间,默认格式为ISO8601,也可以在其后指定格式,比如:%d{yyy MMM dd HH:mm:ss,SSS},输出类似:2002年10月18日 22:10:28,921 %l 输出日志事件的发生位置,包括类目名、发生的线程,以及在代码中的行数。举例:Testlog4.main(Test Log4.java:10)