2017-07-18 3 views
0

Ich habe andere verwandte Fragen überprüft, aber keine Antwort dafür gefunden. Es scheint, die Javadocs bei https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/RollingFileAppender.html sind falsch und/oder unvollständig. Zumindest scheint das Element ein falsches Doppel-Anführungszeichen darin zu haben. Ich starte im Debug-Modus und alles sieht OK aus. Ich kann die Protokolldatei jedoch nicht finden. Wir haben andere benutzerdefinierte Appender, die gut funktionieren, aber ich versuche, sie durch die OTB-Lösung zu ersetzen. Hier ist meine config:Extras RollingFileAppender keine Datei erstellen

<appender name="file" class="org.apache.log4j.rolling.RollingFileAppender"> 
    <param name="threshold" value="debug" /> 
    <rollingPolicy name="file" class="org.apache.log4j.rolling.TimeBasedRollingPolicy"> 
     <param name="FileNamePattern" value="logs/My_Server.%d{yyyy-MM-dd-hh}.log"/> 
    </rollingPolicy> 
    <layout class="org.apache.log4j.PatternLayout"> 
     <param name="ConversionPattern" value="%d{ISO8601} %r [%t] %-5p %c{1} %x - %m%n"/> 
    </layout> 
    </appender> 

    <appender name="ASYNCfile" class="org.apache.log4j.AsyncAppender"> 
    <param name="BufferSize" value="500"/> 
    <param name="blocking" value="false"/> 
    <appender-ref ref="file"/> 
    </appender> 

<root> 
    <priority value="INFO"/> 
    <appender-ref ref="ASYNCfile"/> 
    <appender-ref ref="console"/> 
    </root> 

Und die Debug-Konsole:

log4j: Attaching appender named [file] to appender named [ASYNCfile]. 
log4j: Class name: [org.apache.log4j.rolling.RollingFileAppender] 
log4j: Setting property [threshold] to [DEBUG]. 
log4j: Setting property [fileNamePattern] to [logs/My_Server.%d{yyyy-MM-dd-hh}.log]. 
log4j: Parsing layout of class: "org.apache.log4j.PatternLayout" 
log4j: Setting property [conversionPattern] to [%d{ISO8601} %r [%t] %-5p %c{1} %x - %m%n]. 
log4j: setFile called: logs/My_Server.2017-07-17-05.log, true 
log4j: setFile ended 

ich Fehler nicht sehen, dazu in der Konsole ouput in Verbindung stehend - es gibt einfach keine Datei gefunden werden.

+0

Eigentlich habe ich gerade meine Festplatte durchsucht und die Protokolldateien an einem unerwarteten Ort gefunden. Sie befinden sich im Eclipse-Installationsverzeichnis. Ich führe Tomcat aus, und andere Appender schreiben Protokolle in den Tomcat-Runtime-Ordner, den Eclipse erstellt, wenn Sie einen Server hinzufügen. Jetzt muss ich herausfinden, warum sie an zwei verschiedenen Orten schreiben, wenn ich nichts angegeben habe, was mir bekannt ist. (Andere haben log4j vor mir konfiguriert ...) – Edward

+0

Andere verwandte Beiträge weisen darauf hin, dass der FileNamePattern-Wert ein absoluter Pfad sein sollte. Zumindest wird es dann keine Verwirrung darüber geben, wo die Datei sein wird. Die Javadocs beschreiben nicht die Handhabung dieses Wertes, wenn er relativ ist. Der beste Rat könnte sein, $ {catalina.base}/logs/yourFileNamepattern zu verwenden. Hoffentlich wird dieser Beitrag für andere hilfreich sein. Verwenden Sie auch das log4j configuration debug = true-Flag, um bei der Fehlerbehebung zu helfen. – Edward

Antwort

0

Mit weiterer Arbeit beantwortete ich meine eigene Frage. Siehe die geposteten Kommentare.

Verwandte Themen