环境:JDK1.6+Spring2.5+log4j-1.2.15.jar+commons-logging.jar
我配置文件均在src根目录上,都是用在project上。
log4j整合app应用中有两种方法;一种是log4j.xml,一种是log4j.properties。
我在用log4j.xm时,系统总出如下错误:(且无法写日志)
log4j:WARN No appenders could be found for logger (org.springframework.context.support.ClassPathXmlApplicationContext).
log4j:WARN Please initialize the log4j system properly.
log4j.xml配置文件如下:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration>
<appender name="logs"
class="org.apache.log4j.RollingFileAppender">
<param name="Encoding" value="GBK" />
<param name="File" value="xmlLogs/logs.log" />
<param name="MaxBackupIndex" value="300" />
<param name="MaxFileSize" value="10000" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ISO8601} %p - %m %n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="info" />
<param name="LevelMax" value="error" />
<param name="acceptOnMatch" value="true" />
</filter>
</appender>
<appender name="synlogs"
class="org.apache.log4j.DailyRollingFileAppender">
<param name="Encoding" value="GBK" />
<param name="File" value="xmlLogs/synLogs.log" />
<param name="DatePattern" value="'.'yyyy-MM-dd" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern"
value="%d{ISO8601} %p - %m %n" />
</layout>
<filter class="org.apache.log4j.varia.LevelRangeFilter">
<param name="LevelMin" value="debug" />
<param name="LevelMax" value="error" />
<param name="acceptOnMatch" value="true" />
</filter>
</appender>
<logger name="com.me.conn" additivity="false">
<level value="info" />
<appender-ref ref="logs" />
</logger>
<logger name="com.me.service" additivity="false">
<level value="info" />
<appender-ref ref="synlogs" />
</logger>
<root>
<priority value="info" />
<appender-ref ref="logs" />
<appender-ref ref="synlogs" />
</root>
</log4j:configuration>
后来,log4j里在加了如上红色的代码,问题才得以解决。
=====log4j.properties====
#log4j.rootLogger=debug, stdout, R,D
log4j.rootLogger=INFO, R,D
#log4j.appender.stdout=org.apache.log4j.ConsoleAppender
#log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
#log4j.appender.stdout.layout.ConversionPattern=%5p - %m%n
log4j.appender.R=org.apache.log4j.RollingFileAppender
log4j.appender.R.File=logs/log.log
log4j.appender.R.MaxFileSize=100KB
log4j.appender.R.MaxBackupIndex=22
log4j.appender.R.layout=org.apache.log4j.PatternLayout
log4j.appender.R.layout.ConversionPattern=%p %t %c - %m%n
### output daily file ###
log4j.appender.D = org.apache.log4j.DailyRollingFileAppender
log4j.appender.D.File = logs/DailyLog.log
log4j.appender.D.Append = true
log4j.appender.D.Threshold = DEBUG
log4j.appender.D.layout = org.apache.log4j.PatternLayout
log4j.appender.D.layout.ConversionPattern = %-d{yyyy-MM-dd HH:mm:ss} [ %t:%r ] - [ %p ] %m%n
#log4j.logger.com.codefutures=DEBUG
调用方式为:
Log logger = LogFactory.getLog(ApplicationTest.class);