1

アプリケーションでlog4j.xmlを定義した次の方法で、Java EEアプリケーションでlog4jを使用してログを記録しようとしています。

を使用してアクセスしようとしています

   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)

絶対パスを指定すると、すべてが機能します。

それで、これを達成する方法は何ですか?log4j の 1.2.16.jar バージョンを使用しています

アプリをビルドするたびに次の警告が表示されます

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.

編集:アプリケーション構造

Myapp
  src
  conf
  target

そして、フォルダーsrcの下にlog4j.xmlを配置しました

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>

ありがとう

4

3 に答える 3

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

于 2012-12-07T10:30:25.793 に答える
0

src/main/resourcesフォルダ内に配置することをお勧めします。

log4j.propertiesファイル形式に応じて、名前をに変更することもできます。
またlog4j.jar、、、またはmavenを使用している場合は、pom.xmlファイルに依存関係を追加する必要があります。

于 2012-12-07T10:03:48.223 に答える
0

変更してみてください

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

DOMConfigurator.configure( "/src/log4j.xml");
于 2012-12-07T10:05:37.910 に答える