2012-08-27 159 views
1

我想在我的Java Web應用程序中使用log4j。我正在使用Tomcat 6. 問題是從未創建日誌文件。log4j不能創建日誌文件

的log4j.properties在classpath中,這意味着:

  • MY_PROJECT名
  • 的Java資源
    • SRC
    • 代碼
    • log4j.properties

在源代碼中我使用:

private static Logger log = Logger.getLogger(myclass.class); 

然後當我試圖寫一行:

log.error("here the error message", e); 

而且,這裏我log4j.properties文件:

log4j.rootLogger=A1,file 

log4j.appender.A1=org.apache.log4j.ConsoleAppender 
log4j.appender.A1.layout=org.apache.log4j.PatternLayout 
log4j.appender.A1.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n 

log4j.appender.file=org.apache.log4j.RollingFileAppender 
log4j.appender.file.maxFileSize=5000KB 
log4j.appender.file.maxBackupIndex=20 
log4j.appender.file.File=URLFILE/file.log 
log4j.appender.file.threshold=DEBUG 
log4j.appender.file.layout=org.apache.log4j.PatternLayout 
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} %5p [%t] %c{1}:%L - %m%n 

爲什麼當我運行這個時,日誌文件永遠不會被創建?

+0

檢查文件權限(Tomcat需要寫入)。另外,你在看'working directory/URLFILE/file.log'嗎? – EthanB

+0

是的,權限是可以的,其餘的也可以。 log4j的是在classpath此外,在: 項目名 \t的Java資源 \t \t的Src \t \t代碼 \t \t log4j.properties –

+0

你的意思是'項目名/的Java /資源/ src目錄/代碼/ log4j.properties'? – EthanB

回答

0

你已經把在src一個log4J.property文件,這就是GUD ..只要把LIB也log4J.jar文件...

0

有沒有在你的類路徑log4j.jar?

也許您還必須設置根記錄器級別。 log4j.rootLogger= DEBUG, A1,file

+0

是的,我的類路徑中也有log4j.jar。我猜如果log4j.jar不在我的類路徑中,我的源代碼將會變成紅色!我將添加rootlogger。 –

1

我不能幫你log4j.properties文件,但我可以給你一個工作log4j.xml文件,我使用:

<?xml version="1.0" encoding="UTF-8"?><!DOCTYPE log4j:configuration SYSTEM "log4j.dtd"> 

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 

    <appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender"> 
    <param name="File" value="${catalina.home}/logs/Log.log"/> 
    <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
    <param name="Append" value="true"/> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %p - %m%n"/> 
    </layout> 
    </appender> 

    <!--       --> 
    <!-- setup log4j's root logger --> 
    <!--       --> 
    <root> 
     <level value="DEBUG" /> 
     <appender-ref ref="FILE"/> 
    </root> 

</log4j:configuration> 

我相信XML配置是無論如何配置log4j的首選方式。