6
votes

log4j - Compressez le fichier journal à GZ ​​à la volée

est-il possible de configurer log4j pour créer des fichiers journaux gzipés sans créer des fichiers intermédiaires ?Log? Il existe plusieurs stratégies de roulement (roulement par date, etc.), mais ils créent d'abord des fichiers décompressés.


2 commentaires

log4J génère des journaux conformément à votre période de roulement.Je ne pense pas y avoir une sorte de stratégie de vos besoins. Vous l'avez fait manuellement


Vous voudrez avoir au moins le journal actuel, même si vous avez créé votre propre appendeur, il serait coûteux d'écrire directement sur le fichier zippé. Vous devriez garder la mémoire de connexion (risquée dans le cas d'une halte JVM), puis écrivez le fichier zip. Pourquoi voudriez-vous cela?


3 Réponses :


0
votes

Vous pouvez essayer org.apache.log4j.rolling.timebasedrollingpolicy: xxx


0 commentaires

3
votes

Vous pouvez créer votre propre appendier extension org.apache.log4j.rollingfileAppender et dérober la logique actuelle en mettant en œuvre votre propre version de mise en œuvre optimisée. Fichier Current Zip et jetez-le en le roulant sur un autre fichier journal (mise en œuvre par défaut de RollingFileAppender). Exemple: xxx

Vous pouvez "google" et rechercher des exemples d'implémentation à l'aide de java.Util.zip.zipOutputStream ou de java.util.zip.gzipOutputStream pour zip le fichier actuel.


0 commentaires

1
votes

Il est possible de résoudre cette tâche à l'aide de cet écrivain: http://tomcat.apache.org/tomcat-6.0-doc/api/org/apache/coyote/http11/filters/flushableGzipOutpTream.html et un code comme xxx

Ça fonctionne, mais il y a quelques inconvénients: la compression est inférieure et il n'est pas toujours possible de décompresser ce fichier. Donc, je suis retourné à la rotation.


0 commentaires