JavaRush /مدونة جافا /Random-AR /نقوم بربط التسجيل بمشروع JavaRush الخاص بنا (slf4f وlog4j...
Дмитрий Яковенко
مستوى
Москва

نقوم بربط التسجيل بمشروع JavaRush الخاص بنا (slf4f وlog4j)

نشرت في المجموعة
يمكنك قراءة كيفية توصيل Maven بمشروع JavaRush الخاص بك في هذه المقالة الخاصة بي . يفترض ما يلي أنك تعرف كيفية القيام بذلك. إذا أردنا استخدام slf4j، فسنحتاج إلى تبعية:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-api</artifactId>
    <version>1.7.30</version>
</dependency>
بعد هذا نقوم بما يلي:
public static void main(String[] args) throws IOException {
    Logger logger = LoggerFactory.getLogger(Solution.class);
    logger.info("hello world!");
}
ونحصل على الخطأ:
SLF4J: Failed to load class "org.slf4j.impl.StaticLoggerBinder".
SLF4J: Defaulting to no-operation (NOP) logger implementation
SLF4J: See http://www.slf4j.org/codes.html#StaticLoggerBinder for further details.
وهو أمر منطقي بشكل عام. slf4j عبارة عن غلاف، ولكن ما الذي قمنا بتغليفه؟ لا شئ؟ حسنًا، لقد حصلنا على خطأ. يمكنك لفه حول أحد العناصر التالية: log4j، util.logging، NOP، System.err، JCL، logback. مزيد من التفاصيل في التعليمات الأصلية . دعونا نلقي نظرة على مثال log4j و System.err: 1) لنبدأ بمثال بسيط، مع System.err . للقيام بذلك، أضف هذه (slf4j-simple) إلى التبعية السابقة (slf4j-api).
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-simple</artifactId>
    <version>1.7.30</version>
</dependency>
نحن نأخذ نفس الإصدارات، اعتبارًا من 10 مايو 2021 هو 1.7.30. إذا أخذت التبعيات من https://mvnrepository.com/ ، فلا تنس إزالتها
<scope>test</scope>
وإلا فإن سجلاتك ستعمل فقط في الاختبارات. 2) الآن دعونا نحاول تكوين log4j ، ولهذا نحتاج إلى إضافة تبعيتين: log4j نفسه وطبقة بين slf4j وlog4j (slf4j-log4j12). تبدو هكذا:
<dependency>
    <groupId>org.slf4j</groupId>
    <artifactId>slf4j-log4j12</artifactId>
    <version>1.7.30</version>
</dependency>
<dependency>
    <groupId>log4j</groupId>
    <artifactId>log4j</artifactId>
    <version>1.2.17</version>
</dependency>
من الواضح أننا بحاجة إلى إزالة (slf4j-simple) حتى لا يرتبك slf4j بشأن المُسجل الذي يجب أن يعمل معه. واترك (slf4j-api)، لأن هذا هو slf4j. فيما يتعلق بالتبعيات المضافة 2. log4j نضيف القديم (اعتبارًا من مايو 2012، لا أعرف السبب، يمكنك تجربة الآخرين). نسخته هي 1.2.17. لكي يعمل slf4j معه، تحتاج إلى طبقة مناسبة - slf4j-log4j12، حيث تعني الأحرف الأخيرة (12) إصدار log4j. في هذه الحالة، يجب أن يكون إصدار slf4j-api وslf4j-log4j12 هو 1.7.30 - وهو أحدث إصدار مستقر في الوقت الحالي. بعد توصيل التبعيات وتحديث مشروع Maven. لكي يعمل log4j، تحتاج إلى شيئين إضافيين: 1) إعداد ملف التكوين. نقرأ، نختار، ننسخ. 2) اقرأ تكوين log4j قبل العمل:
PropertyConfigurator.configure("d:\\Java\\JavaRushTasks\\4.JavaCollections\\log4j.properties");
حسنا، أو حيث لديك الملف. إذا كنت تريد رؤية جميع السجلات، فلا تنس ضبط مستوى التسجيل على الكل. نضيف إلى السيرة الذاتية - log4j & slf4j. انت جذاب! إذا كان ذلك مفيدًا - مثل الاشتراك والجرس!)))
تعليقات
TO VIEW ALL COMMENTS OR TO MAKE A COMMENT,
GO TO FULL VERSION