Java konfiguriert Log4j2 in Ihrem Projekt

  1. Log4j2- und SLF4j-Bindungsabhängigkeiten
    Damit Log4j2 mit SLF4J funktioniert, müssen wir die folgenden drei Abhängigkeiten einbeziehen.
    log4j-slf4j-impl.jar – Log4j 2 SLF4J-Bindung. Es ermöglicht Anwendungen, die für die SLF4J-API codiert sind, Log4j2 als Implementierung zu verwenden.
    log4j-api.jar – stellt die Adapterkomponenten bereit, die Implementierer zum Erstellen einer Protokollierungsimplementierung benötigen.
    log4j-core.jar – Kernklassen der Log4j-Implementierung.
    Die Maven- und Gradle-Abhängigkeiten können wie folgt kopiert werden.
    pom.xml

<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version> </abhängigkeit>
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</Abhängigkeit> <Abhängigkeit>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.15.0</version>
</Abhängigkeit>

  1. Erstellen Sie die Datei log4j2.xml in Ihrem Projektressourcenordner
    Beispiel mit Datei-Rolling und Verwendung von Systemvariablen und für die Verwendung unter dem Wildfly-Server:

<?xml version=”1.0″kodierung=”UTF-8″?>
<Konfigurationsstatus=”${env:LOG_LEVEL}”>
<Appenders>
<RollingFile name=”LogToFile” fileName=”${env:JBOSS_HOME}/standalone/log/xxx.log” filePattern=”${env:JBOSS_HOME}/standalone/log/xxx.log-%d{yyyy-MM-dd}”> <PatternLayout>
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} – %msg%n </pattern> </PatternLayout>
<Richtlinien>
<TimeBasedTriggeringPolicy Intervall=”1″ modulate=”true” />
<OnStartupTriggeringPolicy />
</Richtlinien> <!– Maximal 10 Dateien werden täglich erstellt –>
<DefaultRolloverStrategy max=”20″>
<Delete basePath=”${env:JBOSS_HOME}/standalone/log/” maxDepth=”10″>
<!– Alle Dateien löschen, die älter als 30 Tage sind –>
<IfLastModified age=”30d” />
</Delete>
</DefaultRolloverStrategy>
</RollingFile>
</Appenders>
<Loggers>
<!– vermeiden Sie doppelte Protokolle mit additivity=false –>
<Logger name=”xxx-be” level=”${env:LOG_LEVEL}” additivity=”false”> <AppenderRef ref=”LogToFile”/>
</Logger>
<Root level=”${env:LOG_LEVEL}”>
<AppenderRef ref=”LogToFile”/>
</Root>
</Logger>
</Konfiguration>

  1. log4j2.xml
  2. Verwenden des Loggers im Code
    import org.apache.logging.log4j.Logger;
    Logger logger = LogManager.getLogger(“xxx-be”);
    logger.info(“gestartet”);

Ich habe einen ganzen Tag gebraucht, damit es funktioniert. Ich hoffe, das hilft den Entwicklern.

Hinterlassen Sie eine Antwort

Entdecken Sie mehr im Blog von Velislav Krastev

Abonnieren Sie jetzt, um weiterzulesen und Zugriff auf das vollständige Archiv zu erhalten.

Lesen Sie weiter