2017-07-18 4 views
0

J'ai examiné d'autres questions connexes mais je n'ai pas trouvé de réponse pour cela. Il semble que les javadocs au https://logging.apache.org/log4j/extras/apidocs/org/apache/log4j/rolling/RollingFileAppender.html sont incorrects et/ou incomplets. Au moins, l'élément semble avoir une double marque de guillemets. Je démarre en mode débogage et tout a l'air OK. Pourtant, je ne peux pas trouver le fichier journal. Nous avons d'autres appenders personnalisés qui fonctionnent bien, mais j'essaie de les remplacer par la solution OTB. Voici ma config:extras RollingFileAppender ne crée pas de fichier

<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> 

Et la console de débogage:

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 

Je ne vois pas d'erreurs liées à cela dans la console ouput - il n'y a qu'un pas de fichier à trouver.

+0

En fait, je viens de chercher sur mon disque dur et situé les fichiers journaux dans un endroit inattendu. Ils se trouvent dans le répertoire d'installation d'Eclipse. Je cours tomcat et d'autres appenders écrivent des logs dans le dossier d'exécution de Tomcat qu'Eclipse crée quand vous ajoutez un serveur. Maintenant, j'ai besoin de savoir pourquoi ils écrivent dans deux endroits différents quand je n'ai pas spécifié quelque chose que je suis au courant. (D'autres ont configuré log4j avant moi ...) – Edward

+0

D'autres articles liés indiquent que la valeur FileNamePattern doit être un chemin absolu. Au moins, il n'y aura pas de confusion sur l'emplacement du fichier. Les Javadocs ne décrivent pas la gestion de cette valeur quand elle est relative. Le meilleur conseil peut être d'utiliser $ {catalina.base}/logs/yourFileNamepattern. J'espère que ce message sera utile aux autres. Utilisez également l'indicateur de configuration log4j debug = true pour faciliter le dépannage. – Edward

Répondre

0

Avec d'autres travaux, j'ai répondu à ma propre question. Voir les commentaires postés.