2013-12-19 5 views
0

У меня возникла проблема с конфигурацией Log4J (версия 1.2.17) .properties в моей автономной программе Spring (3.2.5).Log4j 1.2 не регистрируется в RollingFileAppender

Это мой файл конфигурации, запись в консоль работает нормально, но 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 

Что я делаю неправильно? Вы видите что-то неправильно, чего я не вижу?

ответ

1

Похоже, вы используете неправильный класс для своего приложения. Вы должны использовать org.apache.log4j.DailyRollingFileAppender (вам не хватает слова Daily).

Но лично я предпочитаю использовать 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"); 

    } 
} 

Результат в моей-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 
+0

Попробую, спасибо. – user2148736

+0

http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/RollingFileAppender.html – user2148736

+0

Извините, похоже, что вы правы. –

Смежные вопросы