2013-10-28 102 views
5

我加載使用log4j無法找到根記錄器信息。這是正確的

java.net.URL url=Thread.currentThread().getContextClassLoader().getResource("MyLog4j.xml"); 
url=Thread.currentThread().getContextClassLoader().getResource("MyLog4j.xml"); 
PropertyConfigurator.configure(url); 

當運行這個程序,在其給這個錯誤log4j的調試配置文件。

log4j: Reading configuration from URL file:/F:/TestApp/WEB-INF/classes/MyLog4j.xml 
log4j: Could not find root logger information. Is this OK? 
log4j: Finished configuring. 
log4j:WARN No appenders could be found for logger (MyServlet). 
log4j:WARN Please initialize the log4j system properly. 

我已經把MyLog4j.xml在Web應用程序/ WEB-INF/classes中

這是

<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/"> 
     <appender name="appender" class="org.apache.log4j.DailyRollingFileAppender"> 
      <param name="DatePattern" value="'.'yyyy-MM-dd"/> 
     <param name="File" value="F:/MyLogs/MyAppLogs.log"/> 
     <param name="Append" value="true"/> 
      <layout class="org.apache.log4j.PatternLayout"> 
      <param name="ConversionPattern" value="%d [%t] %p - %m%n"/> 
     </layout> 
    </appender> 
    <root> 
     <priority value ="debug"/> 
     <appender-ref ref="appender"/> 
    </root> 
</log4j:configuration> 

找遍了很多問題,關於這個話題的我MyLog4j.xml內容在SO上,並沒有得到它的工作。有人可以幫我嗎?

編輯 如果我更改代碼來配置使用屬性文件,那麼它的工作正常。 性文件的內容

# This sets the global logging level and specifies the appenders 
log4j.rootLogger=INFO, myConsoleAppender 

# settings for the console appender 
log4j.appender.myConsoleAppender=org.apache.log4j.ConsoleAppender 
log4j.appender.myConsoleAppender.layout=org.apache.log4j.PatternLayout 
log4j.appender.myConsoleAppender.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n 
+0

你有:<!DOCTYPE log4j:configuration SYSTEM「log4j.dtd」>? – united

+0

是<?xml version =「1.0」encoding =「UTF-8」?> <!DOCTYPE log4j:configuration SYSTEM「log4j.dtd」> –

回答

7

剛剛找到了解決這一塊,我想我會在這裏分享答案,因爲這個問題仍然沒有答案。

問題是您正在使用PropertyConfigurator來配置MyLog4j.xml文件。對於XML文件,您需要使用DOMConfigurator

DOMConfigurator.configure(url); 
相關問題