Sto passando da log4j a logback quindi ho bisogno di convertire il mio log4j.xml a logback.xmlCome convertire log4j.xml in logback.xml?
risposta
Se si può tradurre a mano di nuovo al formato proprietà log4j è possibile utilizzare the log4j.properties to logback.xml translator sul sito del progetto Logback.
ne sono a conoscenza .. comunque grazie. –
Ho riscontrato lo stesso problema e ho trovato una soluzione migliore. Prima di tutto dovrai iniziare da un log4j.xml aggiornato. Il mio aveva ancora cose come category
e priority
tag, che devono essere sostituiti rispettivamente da logger
e level
nella configurazione. Quindi rimuovere tutti gli appendici specifici come ad esempio RollingFileAppender
. In seguito dovrai convertirli manualmente.
Quindi seguire le istruzioni da this blog per convertire il file log4j.xml in un file logback.xml utilizzando Xalan e un filtro di conversione XSLT. Dal momento che il contenuto di questo blog è piuttosto prezioso per la mia risposta, ho assicurato personalmente che questo articolo può essere found in the wayback machine per ogni evenienza. Inoltre, l'articolo non fornisce le versioni delle librerie richieste. Ecco quello che ho usato:
- serializzatore-2.7.1
- xalan-2.7.0
- xercesImpl-2.6.2
- xml-apis-1.3.02
Ed ecco la riga di comando che ha funzionato per me (eseguita nella stessa cartella in cui erano tutte le librerie e le risorse:
java -classpath xalan-2.7.0.jar org.apache.xalan.xslt.Process -IN log4j.xml -XSL log4j-to-logback.xsl -OUT logback.xml
Ora la maggior parte del lavoro è già stata eseguita. Prima di tutto ho riorganizzato tutti i logger come se fossero nel file log4j.xml originale per un ulteriore confronto più facile. Quindi ho convertito gli appendici speciali a mano. È più facile di quanto sembri, lo documentation è piuttosto chiaro. Ecco un esempio (il più complesso ho avuto a che fare con la realtà):
<!-- 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: Se la configurazione richiede l'uso di filtri valutatore come il mio, è necessario dichiarare Janino e commons-compilatore (stessa versione come slf4j) nelle librerie del tuo progetto
- 1. script per convertire log4j.properties a log4j.xml
- 2. Come impostare CATALINA_HOME in log4j.xml?
- 3. Modo lento per convertire log4j.xml in log4j2.xml
- 4. Configurazione logback.xml
- 5. Come impostare filtro nel log4j.xml
- 6. come si sopprime un file logback.xml dei progetti ereditati (2 logback.xml in un singolo progetto)?
- 7. appendici di file e stdout in logback.xml
- 8. Primavera-XD non legge logback.xml
- 9. log4j.xml la collocazione dei file
- 10. Logback.xml non si collega a ConsoleAppender?
- 11. Impossibile utilizzare logback.groovy, ma logback.xml funziona
- 12. perché abbiamo bisogno di root e logger in log4j.xml
- 13. Tag di logger di categoria VS in jboss-log4j.xml
- 14. messaggio di avviso log4j durante l'utilizzo di log4j.xml
- 15. Errori Play 2.1 e Neo4J WrappingNeoServer con Logback.xml
- 16. pom multi modulo con diversi logback.xml per modulo
- 17. java log4j.xml più appendici che condividono un layout
- 18. configurazione log4j.xml con <rollingPolicy> e <triggeringPolicy>
- 19. Log4j.xml categoria multiple appender-ref con priorità diverse
- 20. Posso usare la configurazione Log4j.xml per SLF4J e Logback?
- 21. Come convertire string [] in ArrayList?
- 22. Come convertire JSON in stringa?
- 23. come convertire IEnumerable in IObservable?
- 24. Come convertire CFArrayRef in NSArray?
- 25. come convertire datetime in breve?
- 26. Come convertire int in nsindexpath?
- 27. Come convertire String in JsonObject
- 28. Come convertire LayerDrawable in Bitmap?
- 29. Come convertire CGFontRef in UIFont?
- 30. Come convertire CSV in Excel?
Riscrivi la tua domanda: le raccomandazioni del software sono fuori tema qui. – user2284570