- תלות מחייבת Log4j2 ו-SLF4j
כדי לגרום ל-Log4j2 לעבוד עם SLF4J, עלינו לכלול את 3 התלות הבאות.
log4j-slf4j-impl.jar – כריכת Log4j 2 SLF4J. זה מאפשר ליישומים המקודדים ל- SLF4J API להשתמש ב-Log4j2 כיישום.
log4j-api.jar – מספקת את יישומי רישום הקיריביים המדרעים לממים מימוש.
log4j-core.jar – מחלקות יישום ליבה של Log4j.
ניתן להעתיק את התלות של Maven ו- Gradle כמפורט להלן.
pom.xml
<dependenty>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version> </dependency>
<dependenty>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</dependency> <dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.15.0</version>
</dependency>
- צור את הקובץ log4j2.xml בתיקיית משאבי הפרויקט שלך
דוגמה לגלגול קבצים ושימוש במשתני מערכת ונועד לשימוש תחת שרת wildfly:
<?xml version=”1.0″ קידוד=”UTF-8″?>
<Configuration status=”${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}”Z${env:JBOSS_HOME}/standalone/log/xxx.log”
<pattern>[%-5level] %d{yyyy-MM-dd HH:mm:ss.SSS} [%t] %c{1} – %msg%n </pattern> </OZYX6out
<מדיניות >
<TimeBasedTriggeringPolicy interval=”1″ modulate=”true” />
<OnStartupTriggeringPolicy />
</Policies> <!– מקסימום 10 קבצים ייוצרו מדי יום –>
<DefaultRollover Strategy max=”20″>
<Delete basePath=”${env:JBOSS_HOME}/standalone/log/” maxDepth=”10″>
<!– מחק את כל הקבצים במשך 30 יום –>
<IfLastModified age=”30d” />
</Delete>
</Default Rollover Strategy>
</RollingFile>
</נספחים >
<Loggers>
<!– הימפני יומנים משוכפלים עם 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>
</Loggers>
</Configuration>
- log4j2.xml
- שימוש ב-Logger in Code
ייבוא org.apache.logging.log4j.Logger;
לוגר לוגר = LogManager.getLogger(“xxx-be”);
logger.info(“started”);
הייתי צריך יום שלם כדי שזה יעבוד, אני מקווה שזה יעזור למפתחים.

השאר תגובה