Je suis en train de passer de log4j à Logback donc je dois convertir mes log4j.xml à logback.xmlComment convertir log4j.xml en logback.xml?
Répondre
Si vous pouvez le traduire en main Retour aux propriétés log4j format que vous pouvez utiliser the log4j.properties to logback.xml translator sur le site du projet Logback.
je suis conscient de cela .. de toute façon merci. –
J'ai rencontré le même problème et trouvé une meilleure solution. Tout d'abord, vous devrez commencer à partir d'un fichier log4j.xml à jour. Le mien avait encore des choses comme category
et priority
, qui doivent être remplacés respectivement par logger
et level
dans la configuration. Ensuite, supprimez tous les appenders spécifiques comme par exemple RollingFileAppender
. Vous devrez les convertir manuellement après.
Puis suivez les instructions de this blog pour convertir votre fichier log4j.xml en fichier logback.xml en utilisant Xalan et un filtre de conversion XSLT. Comme le contenu de ce blog est plutôt précieux pour ma réponse, j'ai personnellement veillé à ce que cet article puisse être found in the wayback machine juste au cas où. En outre, l'article ne donne pas les versions des bibliothèques requises. Voici celui que j'utilisé:
- sérialiseur-2.7.1
- xalan-
- 2.7.0 xercesImpl-2.6.2
- xml-apis-1.3.02
Et voici la ligne de commande qui a fonctionné pour moi (exécuté dans le même dossier où toutes les bibliothèques et ressources étaient:
java -classpath xalan-2.7.0.jar org.apache.xalan.xslt.Process -IN log4j.xml -XSL log4j-to-logback.xsl -OUT logback.xml
Maintenant, la plupart du travail est déjà fait. Tout d'abord, j'ai réorganisé tous les enregistreurs comme ils l'étaient dans le fichier log4j.xml d'origine pour faciliter la comparaison. Puis j'ai converti les appenders spéciaux à la main. C'est plus facile qu'il n'y paraît, le documentation est plutôt clair. Voici un exemple (le plus complexe que je devais traiter en fait):
<!-- Log4J Configuration -->
<appender name="myAppender" class="org.apache.log4j.RollingFileAppender">
<param name="File" value="${catalina.base}/logs/myApp.log" />
<param name="Append" value="true" />
<param name="MaxFileSize" value="20MB" />
<param name="MaxBackupIndex" value="10" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %X{param} %-5p %m%n" />
</layout>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="PATTERN1" />
<param name="AcceptOnMatch" value="true" />
</filter>
<filter class="org.apache.log4j.varia.StringMatchFilter">
<param name="StringToMatch" value="PATTERN2" />
<param name="AcceptOnMatch" value="true" />
</filter>
<filter class="org.apache.log4j.varia.DenyAllFilter"/>
</appender>
<!-- Logback configuration -->
<appender name="myAppender" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${catalina.base}/logs/myApp.log</file>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
<fileNamePattern>${catalina.base}/logs/myApp.log.%i</fileNamePattern>
<minIndex>1</minIndex>
<maxIndex>10</maxIndex>
</rollingPolicy>
<triggeringPolicy class="ch.qos.logback.core.rolling.SizeBasedTriggeringPolicy">
<maxFileSize>20MB</maxFileSize>
</triggeringPolicy>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<expression>return message.contains("PATTERN1");</expression>
</evaluator>
<OnMismatch>NEUTRAL</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<filter class="ch.qos.logback.core.filter.EvaluatorFilter">
<evaluator> <!-- defaults to type ch.qos.logback.classic.boolex.JaninoEventEvaluator -->
<expression>return message.contains("PATTERN2");</expression>
</evaluator>
<OnMismatch>DENY</OnMismatch>
<OnMatch>ACCEPT</OnMatch>
</filter>
<encoder>
<pattern>%d %X{param} %-5p %m%n</pattern>
</encoder>
</appender>
NB: Si votre configuration nécessite l'utilisation de filtres d'évaluateur comme le mien, vous devrez déclarer janino et communes compilateur (même version comme slf4j) dans les bibliothèques de votre projet
- 1. Script pour convertir log4j.properties en log4j.xml
- 2. en passant de log4j à SLF4j en utilisant le migrateur SLF4J comment remplacer le fichier log4j.xml avec le logback.xml
- 3. Comment utiliser global log4j.xml
- 4. Tomcat et logback.xml
- 5. En mettant logback.xml dans l'application, qu'en est-il des gens qui veulent leur propre logback.xml?
- 6. aide log4j.xml
- 7. Spécification de log4j.xml en tant que fichier
- 8. log4j.xml est ignoré
- 9. fichier externe log4j.xml
- 10. log4j.xml dans Eclipse
- 11. Comment mettre le filtre dans le log4j.xml
- 12. Comment utiliser jboss-log4j.xml dans mon application
- 13. Comment configurer log4j.xml pour une application Web?
- 14. Inclure log4j.xml dans Project Jar
- 15. logback.xml et l'application en cours d'exécution de JetBrains IDEA IDE
- 16. Schéma XML ou DTD pour logback.xml?
- 17. Utilisation de logback.xml avec Scala Worksheet
- 18. Problème de chemin d'accès log4j.xml
- 19. A propos de log4j.xml NullAppender
- 20. Apache commons HTTPClient et log4j.xml
- 21. fichier externe log4j.xml pour WAR
- 22. Perl: Utilisation de Log4Perl avec log4j.xml
- 23. log4j.xml show com.foo, mais cacher com.foo.bar
- 24. java log4j.xml plusieurs appenders partageant une mise en page
- 25. Indiquer à Tomcat que log4j.xml doit utiliser
- 26. Enregistrement à l'aide de Log4j.xml dans Glassfish
- 27. Pouvez-vous me dire logback.xml un modèle complet?
- 28. multi module pom avec différent logback.xml par module
- 29. log4j message d'avertissement lors de l'utilisation de log4j.xml
- 30. Comment convertir en uint?
Veuillez réécrire votre question: les recommandations logicielles sont hors-sujet ici. – user2284570