warum log4j nicht anmelden, um die Dateien, die ich konfiguriert es mit einem log4j.xml Datei?

Habe ich diese in verschiedenen Umgebungen und habe noch nie eine konsistente Erklärung. Ich habe gehört Kommentare über den Tomcat-container als 'chaotisch', mit der verschiedene logging-Implementierungen möglicherweise in es, und dann meine app oder der classloader nicht wissen, welche Konfiguration zu verwenden.

Dies ist einer jener wahnsinnigen Szenarien, wenn die Anmeldung einmal geklappt und dann nicht melden Sie sich eine Stunde später, ohne änderungen an der log4j.xml Datei. Ich habe meine log4j.xml Datei in die root meiner /src-Verzeichnis, so wird es eingesetzt, um die Wurzel des /WEB-INF/classes-Verzeichnis. Ich bin mit Java 6, Tomcat 6, und es ist eine GWT 2.3-app, läuft von innen Eclipse Helios auf einem Windows 7-Rechner.

Für was es Wert ist, hier ist die log4j.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE}
      %5p %c{1}:%L - %m%n"/>
        </layout>
    </appender>
    <appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${catalina.home}/logs/log4j.log"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d
                %-5p  [%c{1}] %m %n" />
        </layout>
    </appender>
    <root>
        <priority value="debug"></priority>
        <appender-ref ref="fileAppender"/>
    </root>
</log4j:configuration>

hier ist, wie bekomme ich die logger in meiner Klasse, dass das logging

protected static Logger m_logger = Logger.getLogger(RemoteLoggingServiceImpl.class);

dann tatsächlich log ich einfach

m_logger.debug("my log message");

Mit dem obigen code, es muss nicht schreiben, um die logj4.log-Datei.

Dann habe ich versucht, die folgenden, die er bekam logging log4j.log-Datei, aber nicht die otherFile.log-Datei wie ich es erwartet habe. Hier ist die aktualisierte log4j.xml Datei :

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd" >
<log4j:configuration>
    <appender name="stdout" class="org.apache.log4j.ConsoleAppender">
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d{ABSOLUTE}
      %5p %c{1}:%L - %m%n"/>
        </layout>
    </appender>
    <appender name="fileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${catalina.home}/logs/log4j.log"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d
                %-5p  [%c{1}] %m %n" />
        </layout>
    </appender>
    <appender name="otherFileAppender" class="org.apache.log4j.DailyRollingFileAppender">
        <param name="File" value="${catalina.home}/logs/otherFile.log"/>
        <param name="DatePattern" value="'.'yyyy-MM-dd"/>
        <param name="Append" value="true"/>
        <layout class="org.apache.log4j.PatternLayout">
            <param name="ConversionPattern" value="%d
                %-5p  [%c{1}] %m %n" />
        </layout>
    </appender>
    <root>
        <priority value="debug"></priority>
        <appender-ref ref="fileAppender"/>
    </root>
    <logger name="com.mypackage.myLoggingClass">
        <level value="debug"/>
        <appender-ref ref="otherfileAppender"/>
    </logger>
</log4j:configuration>

und ich erstellen dieser logger mit diesem statt :

protected static Logger m_logger = Logger.getLogger("com.mypackage.myLoggingClass");

Kann mir jemand erklären, warum es nicht melden in den ersten Szenario, und/oder warum es Protokolle zu log4j.melden Sie aber nicht otherFile.log in das 2. Szenario?

  • Ich bin mit log4j version 1.2.9
InformationsquelleAutor user26270 | 2012-12-13
Schreibe einen Kommentar