2012-12-07 56 views
1

我正在嘗試使用以下方式在我的Java EE應用程序中使用log4j進行日誌記錄,其中我已在應用程序中定義了一個log4j.xml。在Java EE應用程序中找不到Log4j.xml拋出文件

我試圖用

DOMConfigurator.configure("src/log4j.xml"); 
    logger.warn("Login Process has started a warning message"); 

訪問它,但它不斷拋出下面的錯誤

**編輯的錯誤信息

log4j:ERROR Could not parse file [src/log4j.xml]. 
java.io.FileNotFoundException: D:\src\log4j.xml (The system cannot find the path s  pecified) 
at java.io.FileInputStream.open(Native Method) 
at java.io.FileInputStream.<init>(FileInputStream.java:120) 
at java.io.FileInputStream.<init>(FileInputStream.java:79) 
at sun.net.www.protocol.file.FileURLConnection.connect(FileURLConnection.java:70) 
at sun.net.www.protocol.file.FileURLConnection.getInputStream(FileURLConnection.java:161) 
at org.apache.xerces.impl.XMLEntityManager.setupCurrentEntity(Unknown Source) 
at org.apache.xerces.impl.XMLVersionDetector.determineDocVersion(Unknown Source) 
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
at org.apache.xerces.parsers.XML11Configuration.parse(Unknown Source) 
at org.apache.xerces.parsers.XMLParser.parse(Unknown Source) 
at org.apache.xerces.parsers.DOMParser.parse(Unknown Source) 
at org.apache.xerces.jaxp.DocumentBuilderImpl.parse(Unknown Source) 
at javax.xml.parsers.DocumentBuilder.parse(DocumentBuilder.java:208) 
at org.apache.log4j.xml.DOMConfigurator$1.parse(DOMConfigurator.java:749) 
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:866) 
at org.apache.log4j.xml.DOMConfigurator.doConfigure(DOMConfigurator.java:755) 

當我提供了絕對路徑一切工作。

那麼最新的方法呢?我使用1.2.16.jar版本的log4j

的,我得到下面的每個i構建應用程序

log4j:WARN No appenders could be found for logger  (org.springframework.web.context.ContextLoader). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

編輯前警告: 應用struture

Myapp 
    src 
    conf 
    target 

和我的地點理想的log4j .xml文件夾下src

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="console" class="org.apache.log4j.ConsoleAppender"> 
    <param name="Target" value="System.out" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%-5p %c{1} - %m%n" /> 
    </layout> 
</appender> 
    <appender name="Log" class="org.apache.log4j.FileAppender"> 
    <param name="File" value="Web.log" /> 
    <param name="Append" value="true" /> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{DATE} %-5p %-15c{1}: %m%n" /> 
    </layout> 
</appender> 

<logger name="com.web" additivity="false"> 
    <level value="info" /> 
    <appender-ref ref="Log" /> 
</logger> 

</log4j:configuration> 

謝謝

+0

哪裏的log4j文件位於您的應用程序? – cowls

+0

下的文件夾名爲src – Sam

+1

Prabhat目前接受的答案是一個WTF。將有效的log4j.xml文件的擴展名重命名爲錯誤的?它真的*解決了具體的問題嗎?回答者顯然不知道可以通過XML而不是按屬性來配置log4j。 – BalusC

回答

0

最好把它放在src/main/resources文件夾裏面。

您也可以將其重命名爲log4j.properties,具體取決於您的文件格式。
而且你應該有log4j.jar,或者如果你正在使用maven添加依賴到pom.xml文件。

+0

但它是一個xml文件,它表示在文檔中它應該識別log4j.xml對不對? – Sam

+0

我可以知道你正在使用哪個框架嗎? –

+0

彈簧框架 – Sam

0

嘗試改變這樣

DOMConfigurator.configure("src/log4j.xml"); 

DOMConfigurator.configure("/src/log4j.xml"); 
+0

仍然存在相同的錯誤。我將發佈應用程序結構 – Sam

1

配置web.xml文件。

<!-- these are at the top of the xml configuration file --> 
    <context-param> 
     <param-name>log4jConfigLocation</param-name> 
     <param-value>WEB-INF/conf/log4j.xml</param-value> 
    </context-param> 

    <context-param> 
     <param-name>webAppRootKey</param-name> 
     <param-value>api.root</param-value> 
    </context-param> 

    <listener> 
     <listener-class>org.springframework.web.util.Log4jConfigListener</listener-class> 
    </listener> 
    <listener> 
     <listener-class>org.springframework.web.context.ContextLoaderListener</listener-class> 
    </listener> 

    <!-- ... --> 

這可能會幫助您:http://forum.springsource.org/showthread.php?30800-SpringMVC-XML-Log4j-Logging-not-functioning

+0

您的錯誤顯示您的log4j.xml文件包含未解析的元素..「log4j:ERROR無法解析文件[src/log4j.xml]」...請檢查您的xml文件請 –

+0

相同的錯誤不會來一個絕對路徑時,所以我不認爲它的XML問題 – Sam

+0

你可以請顯示您的log4j.xml文件 –