- تبعيات الربط Log4j2 وSLF4j
لجعل Log4j2 يعمل مع SLF4J، نحتاج إلى تضمين التبعيات الثلاثة التالية.
log4j-slf4j-impl.jar – ربط Log4j 2 SLF4J. يسمح للتطبيقات المشفرة بـ SLF4J API باستخدام Log4j2 كتطبيق.
log4j-api.jar – يوفر مكونات المحول المطلوبة للمنفذين لإنشاء تطبيق التسجيل.
log4j-core.jar – فئات تنفيذ Log4j الأساسية.
يمكن نسخ تبعيات Maven وGradle على النحو التالي.
pom.xml
<التبعية>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-api</artifactId>
<version>2.15.0</version> </dependency>
<التبعية>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-core</artifactId>
<version>2.15.0</version>
</التبعية> <التبعية>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-slf4j-impl</artifactId>
<version>2.15.0</version>
</التبعية>
- قم بإنشاء ملف log4j2.xml في مجلد موارد المشروع الخاص بك
مثال على تدوير الملفات واستخدام متغيرات النظام ومصممة للاستخدام ضمن خادم Wildfly:
<?xml version=”1.0″ ترميز=”UTF-8″?>
<حالة التكوين = “${env:LOG_LEVEL}”>
<الملحقون>
<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>
<السياسات>
<TimeBasedTriggeringPolicy الفاصل الزمني = “1” تعديل = “صحيح” />
<OnStartupTriggeringPolicy />
</Policies> <!– سيتم إنشاء 10 ملفات كحد أقصى يوميًا –>
<DefaultRolloverStrategy max = “20”>
<حذف basePath=”${env:JBOSS_HOME}/standalone/log/” maxDepth=”10″>
<!– حذف كافة الملفات الأقدم من 30 يومًا –>
<IfLastModified age = “30d” />
</حذف>
</DefaultRolloverStrategy>
</RollingFile>
</الملحقون>
<Loggers>
<!– تجنب السجلات المكررة مع الإضافة=خطأ –>
<Logger name = “xxx-be”level = “${env:LOG_LEVEL}” additivity = “false”> <AppenderRef ref = “LogToFile”/>
</المسجل>
<مستوى الجذر = “${env:LOG_LEVEL}”>
<AppenderRef ref = “LogToFile”/>
</جذر>
</لوجرز>
</التكوين>
- log4j2.xml
- استخدام المسجل في التعليمات البرمجية
import org.apache.logging.log4j.Logger;
المسجل logger = LogManager.getLogger(“xxx-be”);
logger.info(“بدأت”);
كنت بحاجة إلى يوم كامل لإنجاحه وآمل أن يساعد هذا المطورين.

ترك الرد