Konfigurieren von log4j2 und log4j mithilfe einer einzelnen log4j2-XML-Datei

Ich habe meine Anwendung auf log4j 2 migriert und sie über log4j2.xml konfiguriert

Einige der Bibliotheken, die ich verwende, hängen jedoch von log4j 1 ab. Wenn ich die Anwendung mit:

-Dlog4j.configurationFile=path/to/log4j2.xml

log4j 1 beschwert sich darüber, dass keine Konfigurationsdatei gefunden wurde. Ich verwende die log4j 1.x-Bridge von log4j 2, log4j-1.2-api-2.0-rc1.jar. Ist es möglich, beide mit einer einzigen log4j2.xml zu konfigurieren?

Eine Alternative, die ich ausprobiert habe, ist die gemeinsame Konfiguration von log4j und log4j2:

-Dlog4j.configurationFile=path/to/log4j2.xml -Dlog4j.configuration=path/to/log4j.xml

Mein Anliegen ist die Fragmentierung meiner Protokollierungskonfigurationsdateien und der Ausgabe. Ich bin auch besorgt über mögliche Konflikte zwischen log4j.xml und log4j2.xml. z.B. Die Protokolldatei error.log ist so konfiguriert, dass sie einen FileAppender in log4j 1 und einen RollingFileAppender in log4j 2 verwendet.

Irgendein Rat?

[Hinweis]

Dies ist der Fehler, den ich sehe:

log4j:WARN No appenders could be found for logger (org.apache.activemq.util.ThreadPoolUtils).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

Die von mir verwendete Version von log4j 2 ist log4j 2.0 rc1.

[Antworten]

Anscheinend wurde activemq-5.8.0.jar mit log4j 1 gebündelt. Die Lösung bestand einfach darin, die log4j 1.x-Brücke vor activemq zu laden.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage