我的Spring(3.2.5)独立应用程序中的Log4J
(版本1.2.17)配置.properties
文件存在问题。
这是我的配置文件,登录到控制台工作正常,但RollingFileAppender
不会将消息附加到logs/application_log.file
。我试图改变几乎所有内容 - 文件名,ConversionPattern
,手动创建文件并设置文件系统权限(OS X Mavericks)以便写入所有内容但没有任何作用。
log4j.rootLogger=INFO,CA,FA
#Console Appender
log4j.appender.CA=org.apache.log4j.ConsoleAppender
log4j.appender.CA.layout=org.apache.log4j.PatternLayout
log4j.appender.CA.layout.ConversionPattern=%d{ISO8601} %-5p [%c:%L] - %m%n
#Rolling File Appender
log4j.appender.FA=org.apache.log4j.RollingFileAppender
log4j.appender.FA.File=logs/application_log.log
log4j.appender.FA.MaxFileSize=50MB
log4j.appender.FA.layout.ConversionPattern=%d{ISO8601} %-5p [%c:%L] - %m%n
log4j.appender.FA.Append=true
log4j.appender.FA.MaxBackupIndex=10
log4j.appender.FA.layout=org.apache.log4j.PatternLayout
我做错了什么?你看到我看不到的错误吗?
答案 0 :(得分:1)
看起来你正在为你的appender使用错误的类。你应该使用org.apache.log4j.DailyRollingFileAppender(你每天都缺少单词)。
但我个人更喜欢使用log4j.xml而不是log4j.properties。例如:
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j='http://jakarta.apache.org/log4j/'>
<appender name="log-app" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="C:/Temp/my-log.log"/>
<param name="DatePattern" value="'.'yyyy-MM-dd"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c - %m%n"/>
</layout>
</appender>
<root>
<level value="debug"/>
<appender-ref ref="log-app"/>
</root>
</log4j:configuration>
jUnit测试:
import org.apache.log4j.Logger;
import org.junit.Test;
public class FakeTest {
private final static Logger log = Logger.getLogger(FakeTest.class);
@Test
public void testTestMe() throws Exception {
log.debug("Debug message");
log.error("Error message");
}
}
my-app.log中的结果:
2013-12-20 09:40:40,589 [main] DEBUG my.package.FakeTest - Debug message
2013-12-20 09:40:40,589 [main] ERROR my.package.FakeTest - Error message