2016-07-21 10 views
1

Ich verwende log4j2 in meinem Projekt mit -Dlog4j.configurationFile=src/main/resources/log4j2.xml.
Meine Anwendungsprotokollierer schreiben Protokolle in dem Format, das in der Konfigurationsdatei angegeben ist.Wie log4j config auf die Abhängigkeiten des Projekts eingestellt wird?

Ich habe andere Abhängigkeiten (sparkjava, hazelcast, mongodb, sql2o etc ..), die auch Protokolle schreiben, aber in anderem Format. Ich möchte, dass diese Logger meine log4j Konfigurationsdatei verwenden.

Wie kann ich es tun?

EDIT:

Meine log4j2.xml wie folgt aussieht:

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="WARN"> 
    <Appenders> 
    <Console name="Console" target="SYSTEM_OUT"> 
     <PatternLayout pattern="%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n"/> 
    </Console> 
    </Appenders> 
    <Loggers> 
    <Root level="trace"> 
     <AppenderRef ref="Console"/> 
    </Root> 
    </Loggers> 
</Configuration> 

Wie ich es verstehe, sollte jede Protokollmeldung an die root Logger beziehen sein und somit nach meiner log4j2.xml Konfigurationsdatei formatiert werden.

+0

können Sie uns Ihre log4j2.xml, log4j2 Support-APIs geben: SLF4J, Commons Logging, Log4j-1.x und java.util.logging. Also werden diese Logs von log4j2 gesammelt. Sie sagen anderes Format, aber in den gleichen Appenders als log4j2? –

+0

@Mr_Thorynque Ich habe die Datei hinzugefügt – itaied

Antwort

1

die log4j 2 Gläser hinzufügen und die Adapter für andere Logging-APIs:

  1. log4j-api (immer)
  2. log4j-Kern (immer)
  3. log4j-1.2-api
  4. log4j -jcl
  5. log4j-slf4j-impl (fügen Sie nicht log4j-to-slf4j)

entfernen andere loggin g-Implementierungen:

  1. log4j-1.2.x
  2. logback-Core- *
  3. logback-Classic- *

halten die Fassaden:

  1. commons-Logging- *
  2. slf4j-api *
Verwandte Themen