السبت، 23 نوفمبر 2019

التسجيل في الإقلاع او التمهيد الربيع Spring Boot Logging#

التسجيل في الإقلاع او التمهيد الربيع Spring Boot Logging#

التسجيل في الإقلاع او التمهيد الربيع Spring Boot Logging#

يستخدم Spring Boot تسجيل Apache Commons لجميع عمليات التسجيل الداخلية.  توفر التكوينات الافتراضية لـ Spring Boot دعمًا لاستخدام Java Util Logging و Log4j2 و Logback.  باستخدام هذه ، يمكننا تكوين تسجيل وحدة التحكم وكذلك تسجيل الملف.

 إذا كنت تستخدم Spring Boot Starters ، فسوف يوفر Logback دعمًا جيدًا للتسجيل.  بالإضافة إلى ذلك ، يوفر Logback أيضًا استخدام دعم جيد لـ Common Logging و Util Logging و Log4J و SLF4J.

 تنسيق السجل
 يظهر تنسيق سجل التمهيد الافتراضي في لقطة الشاشة الموضحة أدناه.


التي تعطيك المعلومات التالية -

 التاريخ والوقت الذي يعطي تاريخ ووقت السجل

 يظهر مستوى السجل INFO أو ERROR أو WARN

 معرف العملية

 و --- وهو فاصل

 يتم وضع اسم الخيط داخل الأقواس المربعة []

 اسم المسجل الذي يظهر اسم فئة المصدر

 رسالة السجل

 إخراج سجل وحدة التحكم
 سيتم طباعة رسائل السجل الافتراضية إلى إطار وحدة التحكم.  بشكل افتراضي ، سيتم طباعة رسائل السجل "INFO" و "ERROR" و "WARN" في ملف السجل.

 إذا كان عليك تمكين سجل مستوى التصحيح ، فأضف علامة التصحيح عند بدء تشغيل التطبيق الخاص بك باستخدام الأمر الموضح أدناه -
java –jar demo.jar --debug

يمكنك أيضًا إضافة وضع التصحيح إلى ملف application.properties الخاص بك كما هو موضح هنا -

debug = true

 مخرجات ملف التسجيل File Log Output

بشكل افتراضي ، ستتم طباعة جميع السجلات في إطار وحدة التحكم وليس في الملفات.  إذا كنت ترغب في طباعة السجلات في ملف ، فأنت بحاجة إلى وضع خاصية logging.file أو logging.path في ملف application.properties.

 يمكنك تحديد مسار ملف السجل باستخدام الخاصية الموضحة أدناه.  لاحظ أن اسم ملف السجل هو spring.log.

logging.path = /var/tmp/
يمكنك تحديد اسم ملف السجل الخاص باستخدام الخاصية الموضحة أدناه -

logging.file = /var/tmp/mylog.log

ملاحظة - سيتم تدوير الملفات تلقائيًا بعد الوصول إلى الحجم 10 ميغابايت.

Log Levels

يدعم Spring Boot جميع مستويات المسجل مثل "TRACE" و "DEBUG" و "INFO" و "WARN" و "ERROR" و "FATAL" و "OFF".  يمكنك تحديد مسجل الجذر في ملف application.properties كما هو موضح أدناه -

logging.level.root = WARN

ملاحظة - لا يدعم Logback سجل مستوى "FATAL".  يتم تعيينه إلى سجل مستوى "الخطأ".

Configure Logback

يدعم Logback التكوين المستند إلى XML للتعامل مع تكوينات Spring Boot Log.  يتم تكوين تفاصيل تكوين التسجيل في ملف logback.xml.  يجب وضع ملف logback.xml ضمن classpath.

 يمكنك تكوين سجل مستوى ROOT في ملف Logback.xml باستخدام الرمز الوارد أدناه -

xml version = "1.0" encoding = "UTF-8"?>

    level = "INFO">
   
يمكنك تكوين معرف وحدة التحكم في ملف Logback.xml الموضح أدناه.

xml version = "1.0" encoding = "UTF-8"?>

    name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
    level = "INFO">
       ref = "STDOUT"/> 
   

يمكنك تكوين معرف الملف في ملف Logback.xml باستخدام الكود الوارد أدناه.  لاحظ أنك تحتاج إلى تحديد مسار ملف السجل داخل ملف الملف.

xml version = "1.0" encoding = "UTF-8"?>

    name = "FILE" class = "ch.qos.logback.core.FileAppender">
      /var/tmp/mylog.log
level = "INFO"> ref = "FILE"/>

يمكنك تحديد نمط السجل في ملف logback.xml باستخدام الكود الوارد أدناه.  يمكنك أيضًا تحديد مجموعة أنماط السجل المدعومة داخل وحدة التحكم أو ملف سجل الملف باستخدام الكود الموضح أدناه -

[%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n

 ويرد رمز لملف logback.xml الكامل أدناه.  عليك أن تضع هذا في مسار الفصل.

xml version = "1.0" encoding = "UTF-8"?>

    name = "STDOUT" class = "ch.qos.logback.core.ConsoleAppender">
      
         [%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n
name = "FILE" class = "ch.qos.logback.core.FileAppender"> /var/tmp/mylog.log [%d{yyyy-MM-dd'T'HH:mm:ss.sss'Z'}] [%C] [%t] [%L] [%-5p] %m%n level = "INFO"> ref = "FILE"/> ref = "STDOUT"/>

يوضح الكود الوارد أدناه كيفية إضافة مسجل slf4j في ملف الفصل الرئيسي في Spring Boot.
package com.ahmedalmahallawi.demo;

import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;

@SpringBootApplication
public class DemoApplication {
   private static final Logger logger = LoggerFactory.getLogger(DemoApplication.class);
   
   public static void main(String[] args) {
      logger.info("this is a info message");
      logger.warn("this is a warn message");
      logger.error("this is a error message");
      SpringApplication.run(DemoApplication.class, args);
   }
}

يتم عرض المخرجات التي يمكنك مشاهدتها في نافذة وحدة التحكم هنا -


يظهر الإخراج الذي يمكنك رؤيته في ملف السجل هنا








التسميات: