Java-konfigurera Log4j2 i ditt projekt

  1. Log4j2 och SLF4j bindande beroenden
    För att få Log4j2 att fungera med SLF4J måste vi inkludera följande 3 beroenden.
    log4j-slf4j-impl.jar – Log4j 2 SLF4J bindning. Det tillåter applikationer kodade till SLF4J API att använda Log4j2 som implementering.
    log4j-api.jar – tillhandahåller de adapterkomponenter som krävs för implementerare för att skapa en loggningsimplementering.
    log4j-core.jar – kärna Log4j Implementeringsklasser.
    Maven- och Gradle-beroendena kan kopieras enligt nedan.
    pom.xml

<beroende>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version> </beroende>
<beroende>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</beroende> <beroende>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.15.0</version>
</beroende>

  1. Skapa fil log4j2.xml i mappen Projektresurser
    Exempel med filrullning och användning av systemvariabler och gjort för användning under wildfly-server:

<?xml version=”1.0″ encoding=”UTF-8″?>
<Configuration status=”${env:LOG_LEVEL}”>
<Aappenders>
<RollingFilnamn=”LogToFile” filnamn=”${env:JBOSS_HOME}/standalone/log/xxx.log” filePattern=”${env:JBOSS_HOME}/standalone/log/xxx.log-%d{yyyy-MM-dd}”Z${env:JBOSS_HOME}/standalone/log/xxx.log” out
<pattern>[%-5level] %d{åååå-MM-dd HH:mm:ss.SSS} [%t] %c{1} – %msg%n </pattern> </ZYX7ZOut
<Policyer>
<TimeBasedTriggeringPolicy interval=”1″ modulera=”true” />
<OnStartupTriggeringPolicy />
</Policies> <!– Max 10 filer kommer att skapas varje dag –>
<DefaultRolloverStrategy max=”20″>
<Delete basePath=”${env:JBOSS_HOME}/fristanöde/log/” maxDepth=”10″>
<!– Ta bort alla filer äldre än 30 dagar –>
<IfLastModified age=”30d” />
</Ta bort >
</StandardRolloverStrategy>
</RollingFile>
</Bilag >
<Loggers>
<!– undvik duplicerade loggar med additivity=false –>
<Logger name=”xxx-be” level=”${env:LOG_LEVEL}” additivity=”false”> <AppenderRef ref=OZY0Z1ZOZY1Fix1ZOXY1ZOXY1ZOXY1ZOXY1
</Logger>
<Root level=”${env:LOG_LEVEL}”>
<AppenderRef=”LogToFile”/>
</Root>
</Loggers>
</Konfiguration >

  1. log4j2.xml
  2. Använder Logger in Code
    importera org.apache.logging.log4j.Logger;
    Logger logger = LogManager.getLogger(“xxx-be”);
    logger.info(“startade”);

Jag behövde en hel dag för att få det att fungera, jag hoppas att detta kommer att hjälpa utvecklare.

Lämna ett svar