2014-09-12 1 views
0

Nous avons récemment migré log4j2-beta9 vers la version log4j2-2.0. Nous sommes confrontés à un problème avec le fichier roll-over.log4j2: Le fichier de remplacement ne se compresse pas et le fichier actif n'est pas effacé

Le premier numéro: Le fichier de survol n'est pas compressé et seul le fichier .log reste. Le second numéro: Le fichier actif n'est pas effacé. Les journaux continuent d'être ajoutés au même fichier, ce qui augmente la taille du fichier.

S'il vous plaît trouver mon log4j2.xml:

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE log4j2config [ 
<!ENTITY appenders SYSTEM "#USER_INSTALL_DIR#/wwf/config/properties/log4j2-appenders.xml"> 
<!ENTITY loggers SYSTEM "#USER_INSTALL_DIR#/wwf/config/properties/log4j2-loggers.xml"> 
]> 
<configuration monitorInterval="30" status="debug"> 
    <properties> 
    <property name="log4j2.logDir">.</property> 
    <property name="logDir">${sys:log4j2.logDir}</property> 
    <property name="log4j2.filePrefix">default</property> 
    <property name="filePrefix">${sys:log4j2.filePrefix}</property> 
    </properties> 
    <appenders> 
    <RollingFile name="Default" fileName="${logDir}/${filePrefix}.log" 
       filePattern="${logDir}/${filePrefix}/${filePrefix}-%d{MM-dd-yyyy}-%i.log.gz"> 
     <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] %c %m [%M:%L %X] %n"/> 
     <Policies> 
     <SizeBasedTriggeringPolicy size="1 MB"/> 
     </Policies> 
     <DefaultRolloverStrategy max="200"/> 
    </RollingFile> 
    <Console name="Console" target="SYSTEM_ERR"> 
     <PatternLayout charset="UTF-8" pattern="%d %-5p [%t] %c %m [%M:%L %X] %n"/> 
    </Console> 
    &appenders; 
    </appenders> 
    <loggers> 
    <logger name="SYSTEM_OUT" level="info" additivity="false"> 
     <appender-ref ref="Default" /> 
     <appender-ref ref="Console" /> 
    </logger> 
    <logger name="SYSTEM_ERR" level="error" additivity="false"> 
     <appender-ref ref="Default" /> 
     <appender-ref ref="Console" /> 
    </logger> 
    <logger name="com.abc" level="debug" additivity="false"> 
     <appender-ref ref="Default"/> 
    </logger> 
    <logger name="com.xyz" level="debug" additivity="false"> 
     <appender-ref ref="Default"/> 
    </logger> 
    <logger name="com.abcdef" level="debug" additivity="false"> 
     <appender-ref ref="Default"/> 
    </logger> 
    <logger name="com.abcdef.commons" level="debug" additivity="false"> 
     <appender-ref ref="Default"/> 
    </logger> 
    <logger name="org.springframework" level="warn" additivity="false"> 
     <appender-ref ref="Default"/> 
    </logger> 
    <root level="error"> 
     <appender-ref ref="Console"/> 
    </root> 
    &loggers; 
    </loggers> 

</configuration> 

Répondre

1

Le problème se produit car le nœud 1 dans la configuration du cluster se comporte comme le serveur d'administration également. Mais la JVM pour le serveur d'administration et le nœud 1 est différente. Ces deux JVM utilisent le même fichier appserver.log pour la journalisation. Cependant, le serveur d'administration n'ajoutera rien au fichier journal. Néanmoins, il verrouille toujours le fichier appserver.log. Ainsi, le fichier appserver.log ne sera pas effacé.

Par conséquent, dans votre configuration, vérifiez si appserver.log est verrouillé pour une raison quelconque.

Dans notre cas, nous avons résolu le problème en créant un serveur d'applications factice.log pour le serveur d'administration. De cette façon, notre fichier journal n'est pas verrouillé.

0

Avez-vous essayé d'ajouter <TimeBasedTriggeringPolicy /> à votre section <RollingFile>...<Policies>? Vous n'avez actuellement qu'une politique de déclenchement basée sur la taille, mais votre fichier filePattern a une date.

En outre, votre config a une chaîne étrange &appenders; - vous devriez probablement supprimer cela.

</Console> 
    &appenders; 
    </appenders> 

similaires pour les bûcherons:

</root> 
    &loggers; 
    </loggers> 
+0

Quelques mises à jour sur le problème ci-dessus: Nous ne sommes pas confrontés au problème lorsque nous avons une configuration autonome. Ce problème se pose lorsque nous avons une configuration de cluster. Dans la configuration du cluster, le serveur d'administration et l'un des nœuds sont identiques. Dans un tel scénario, nous obtenons le problème de roulement de fichier journal. L'autre noeud, cependant, fonctionne bien. Les bûches roulent et zippent. Le fichier actuel se vide également. J'ai vraiment du mal à trouver la cause profonde du problème. J'ai essayé les deux choses suggérées, mais elles n'ont pas aidé! – Shashi

+0

Est-ce que cela signifie que vous avez deux processus qui écrivent dans le même fichier? –

+0

Non, le serveur d'administration est uniquement pour l'équilibrage de charge. Il n'a aucun processus d'écriture dans le fichier journal. – Shashi

Questions connexes