ما هو المسجل في جافا ولماذا تستخدمه؟



هذه المقالة عن Logger in Java هي دليل شامل عن Java logging API المستخدمة لحلول التسجيل أثناء إنشاء المشاريع.

يعد التسجيل ميزة مهمة يجب أن يأخذها المطورون في الاعتبار لتتبع الأخطاء. لكونها واحدة من أكثر لغات البرمجة شيوعًا ، فهي تأتي مع نهج قابل للتخصيص للتسجيل من خلال توفير واجهة برمجة تطبيقات أساسية للتسجيل. لذلك ، في هذه المقالة حول المسجل في جافا ، سأناقش كيف يمكن استخدام هذه الميزة لتمكين التسجيل الموسع في Java.

سيتم تناول الموضوعات التالية في هذه المقالة:





    1. الحاجة للتسجيل
    2. مكونات التسجيل
    3. ما هو المسجل؟
    4. إلحاق أو معالجات
    5. التخطيط أو المنسِّقات

من قبل ، نتعمق في تسجيل الدخول إلى جافا ، دعونا نفهم الحاجة إلى التسجيل.

الحاجة للتسجيل

أثناء إنشاء التطبيقات ، غالبًا ما نواجه أخطاء يجب تصحيحها. لذلك ، بمساعدة السجلات ، يمكننا بسهولة الحصول على معلومات حول ما يحدث في التطبيق مع سجل الأخطاء والظروف غير العادية. الآن ، قد يخطر ببالك أنه ، لماذا لا تستخدم عبارة System.out.print () في ملف . حسنًا ، تكمن مشكلة هذه البيانات في أن رسائل السجل ستتم طباعتها على وحدة التحكم فقط. لذلك ، بمجرد إغلاق وحدة التحكم ، ستفقد جميع السجلات تلقائيًا. لذلك ، لن يتم تخزين السجلات بشكل دائم ، وسيتم عرضها واحدة تلو الأخرى ، لأنها بيئة ذات ترابط واحد.



لتجنب مثل هذه المشكلات ، يتم تبسيط تسجيل الدخول إلى Java بمساعدة ملفيتم توفير API من خلالjava.util.loggingالحزمة وorg.apache.log4j. *صفقة.

مكونات التسجيل

تساعد مكونات تسجيل Java المطور على إنشاء السجلات وتمرير السجلات إلى الوجهة المعنية والحفاظ على التنسيق المناسب. فيما يلي المكونات الثلاثة:

الفرق الرئيسي بين الهاكر والهاكر الأخلاقي هو:
  • الحطابين - مسؤول عن التقاط سجلات السجل وتمريرها إلى المُلحق المقابل.
  • المُلحقون أو المعالجات - هم مسؤولون عن تسجيل أحداث السجل إلى وجهة. تقوم الملحقات بتنسيق الأحداث بمساعدة التخطيطات ، قبل إرسال المخرجات.
  • التخطيطات أو المنسقات - مسؤول عن تحديد شكل البيانات عند ظهورها في إدخال السجل.

يمكنك الرجوع إلى الصورة أدناه لعمل المكونات الثلاثة:



مكونات التسجيل - المسجل في Java - Edureka

عندما يقوم أحد التطبيقات بإجراء مكالمة تسجيل ، يقوم مكون المسجل بتسجيل الحدث في LogRecord وإعادة توجيهه إلى المُلحق المناسب. ثم قام بتكوين السجل باستخدام التخطيط وفقًا للتنسيق المطلوب. بصرف النظر عن ذلك ، يمكنك أيضًا استخدام أكثر من عامل تصفية لتحديد الملحقات التي يجب استخدامها للأحداث.

الآن ، دعونا نفهم ما هو المسجل في Java في العمق.

ما هو المسجل في جافا؟

المسجلات في Java هي كائنات تؤدي إلى أحداث السجل ، ويتم إنشاؤها واستدعائها في كود التطبيق ، حيث يقومون بإنشاء أحداث السجل قبل تمريرها إلى المكون التالي وهو المُلحق. يمكنك استخدام أجهزة تسجيل متعددة في فئة واحدة للرد على أحداث مختلفة أو استخدام المسجلات في التسلسل الهرمي. يتم تسميتها عادةً باستخدام مساحة الاسم الهرمية المفصولة بالنقاط. أيضًا ، يجب أن تستند جميع أسماء المسجل إلى الفئة أو اسم الحزمة للمكون المسجل.

بصرف النظر عن هذا ، يحتفظ كل مسجل بمسار لأقرب سلف موجود في السجلات مساحة الاسم ولديه أيضًا 'مستوى' مرتبط به. حسنًا ، سأناقش أدوات التسجيل في الجزء الأخير من هذه المقالة ، ولكن قبل ذلك ، دعني أوضح لك كيفية إنشاء مسجل في Java.

إنشاء مسجل جديد

عملية إنشاء مسجل جديد في Java بسيطة للغاية. عليك أن تستخدمLogger.getLogger ()طريقة. الgetLogger () يحدد اسم المسجل ويأخذ سلسلة كمعامل. لذلك ، إذا كان المسجل موجودًا مسبقًا ، فسيتم إرجاع هذا المسجل ، وإلا يتم إنشاء مسجل جديد.

بناء الجملة:

ثابت المسجل المسجل = Logger.getLogger (SampleClass.class.getName ())

هنا ، SampleClass هو اسم الفئة التي نحصل عليها كائن المسجل.

مثال:

public class Customer {private static final Logger LOGGER = Logger.getLogger (Customer.class) باطل عام getCustomerDetails () {}}

الآن بعد أن أخبرتك بكيفية إنشاء مسجل في Java ، دعنا نرى المستويات المختلفة المتاحة في التسجيل.

مستويات السجل

تُستخدم مستويات السجل لتصنيف السجلات حسب خطورتها أو تأثيرها على استقرار التطبيق. الorg.apache.log4j. *الحزمة وjava.util.loggingكلاهما يوفر مستويات مختلفة من التسجيل. دعونا نلقي نظرة على كل منهم واحدًا تلو الآخر.

org.apache.log4j. *توفر الحزمة المستويات التالية بترتيب تنازلي:

  • قاتلة - مهلك
  • خطأ
  • تحذير
  • INFO
  • تصحيح

java.util.loggingتوفر الحزمة المستويات التالية بترتيب تنازلي:

  • شديد (أعلى مستوى)
  • تحذير
  • INFO
  • تكوين
  • غرامة
  • أدق
  • أروع (أدنى مستوى)

بصرف النظر عن هذا ، توفر الحزمة أعلاه أيضًا مستويين إضافيينالكلوإيقافتستخدم لتسجيل جميع الرسائل وتعطيل التسجيل على التوالي.

مثال على تسجيل الدخول إلى Java باستخدام امتدادorg.apache.log4j. *صفقة:

import org.apache.log4j.Logger public class Customer {static Logger logger = Logger.getLogger (Customer.class) public static void main (String [] args) {logger.error ('ERROR') logger.warn ('WARNING' ) logger.fatal ('FATAL') logger.debug ('DEBUG') logger.info ('INFO') System.out.println ('الإخراج النهائي')}}

حتى إذا كان الناتج الخاص بكمسجل الجذر كمستوى WARN في ملف log4j.properties ملف ، ثم ستتم طباعة جميع رسائل الخطأ ذات الأولوية الأعلى من WARN على النحو التالي:

يمكنك أيضًا تعيين المستوى باستخدام طريقة setLevel () من ملفjava.util.loggingالحزمة على النحو التالي:

logger.setLevel (مستوى تحذير)

مثال على تسجيل الدخول إلى Java باستخدام امتدادjava.util.loggingصفقة:

الحزمة edureka import java.io.IOException import java.util.logging.Level import java.util.logging.Logger import java.util.logging. * class EdurekaLogger {private final static Logger LOGGER = Logger.getLogger (Logger.GLOBAL_LOGGER_NAME) عام void sampleLog () {LOGGER.log (Level.WARNING، 'Welcome to Edureka!')}} عميل من الطبقة العامة {public static void main (String [] args) {EdurekaLogger obj = new EdurekaLogger () obj.sampleLog () LogManager slg = LogManager.getLogManager () Logger log = slg.getLogger (Logger.GLOBAL_LOGGER_NAME) log.log (Level.WARNING ، 'مرحبًا! مرحبًا من Edureka')}}

لتمكين تسجيل الدخول إلى التطبيق الخاص بك باستخدامorg.apache.log4j. *الحزمة أوjava.util.loggingالحزمة ، يجب عليك تكوين ملف الخصائص. بعد ذلك في هذه المقالة حول Logger in Java ، دعونا نناقش ملف خصائص كل منهما.

ملف خصائص Log4j و Java Util Package

نموذج لملف خصائص Log4j:

# Enable Root Logger option log4j.rootLogger = INFO، file، stdout # Attach appenders to print file log4j.appender.file = org.apache.log4j.RollingFileAppender log4j.appender.file.File = E: loglogging.log log4j.appender. file.MaxFileSize = 10 ميجابايت log4j.appender.file.MaxBackupIndex = 5 log4j.appender.file.layout = org.apache.log4j.PatternLayout log4j.appender.file.layout.ConversionPattern =٪ d {yyyy-MM-dd HH: : ss}٪ -5p٪ c {1}:٪ L -٪ m٪ n # إرفاق ملاحق للطباعة على وحدة التحكم log4j.appender.stdout = org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target = System.out log4j.appender.stdout.layout = org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern =٪ d {yyyy-MM-dd HH: mm: ss}٪ -5p٪ c {1}:٪ L -٪ m٪ n
  • يتم إنشاء ملف خصائص Log4j داخل مجلد src الخاص بالمشروع.
  • log4j.appender.file = org.apache.log4j.RollingFileAppender -> يطبع كل السجلات في ملف
  • log4j.appender.stdout = org.apache.log4j.ConsoleAppender -> يطبع كل السجلات في وحدة التحكم
  • log4j.appender.file.File = D: loglogging.log -> يحدد موقع ملف السجل
  • log4j.appender.file.MaxFileSize = 10 ميجابايت -> الحد الأقصى لحجم ملف السجل إلى 10 ميجابايت
  • log4j.appender.file.MaxBackupIndex = 5 -> يحدد عدد ملفات النسخ الاحتياطي بـ 5
  • log4j.appender.file.layout = org.apache.log4j.PatternLayout -> يحدد النمط الذي ستطبع فيه السجلات إلى ملف السجل.
  • log4j.appender.file.layout.ConversionPattern =٪ d {yyyy-MM-dd HH: mm: ss}٪ -5p٪ c {1}:٪ L -٪ m٪ n -> يحدد نمط التحويل الافتراضي.

عينة ملف خصائص حزمة جافا Util

handlers = java.util.logging.ConsoleHandler .level = تحذير # سيتم تخزين الإخراج في الدليل الافتراضي java.util.logging.FileHandler.pattern =٪ h / java٪ u.log java.util.logging.FileHandler.limit = 60000 java.util.logging.FileHandler.count = 1 java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter # سيقتصر مستوى السجلات على WARNING وما فوق. java.util.logging.ConsoleHandler.level = تحذير java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter

هنا،

  • java.util.logging.FileHandler.pattern =٪ h / java٪ u.log -> ستتم كتابة ملفات السجل إلىج: TEMPjava1.log
  • java.util.logging.FileHandler.limit = 50000 ->الحد الأقصى للمبلغ الذي يكتبه المسجل في أي ملف بالبايت.
  • java.util.logging.FileHandler.count = 1 -> يحدد عدد ملفات الإخراج
  • java.util.logging.FileHandler.formatter = java.util.logging.XMLFormatter -> يذكر المنسق المستخدم للتنسيق. هنا يتم استخدام XML Formatter.
  • java.util.logging.ConsoleHandler.level = تحذير -> يعين مستوى السجل الافتراضي على تحذير
  • java.util.logging.ConsoleHandler.formatter = java.util.logging.SimpleFormatter ->يحدد الالمنسقليتم استخدامها من قبل الجميعوحدة التحكم'س. هنا ، يتم استخدام SimpleFormatter.

أحداث التسجيل

لتسجيل الأحداث ، عليك التأكد من تعيين مستوى لتصنيف الأحداث بسهولة. لتعيين مستوى وذكر رسالة ، يمكنك استخدام الطرق التالية:

طريقة 1:

logger.log (Level.INFO ، 'عرض الرسالة')
هنا ، المستوى هو INFO والرسالة المراد طباعتها هي 'Display Message'.

الطريقة الثانية:

logger.info ('عرض الرسالة')

للتأكد من أن Logger in Java ، يسجل فقط الأحداث التي تقع على مستوى المعلومات أو أعلى منه ، يمكنك استخدام تعيين مستوى() الطريقة التي نوقشت أعلاه.

الآن ، بعد أن ناقشت كيفية استخدام Logger في Java ، دعونا نناقش المكون التالي من بنية Log4j ، أي Appenders.

إلحاق أو معالجات

المُلحق أو المعالجات مسؤولون عن تسجيل أحداث السجل إلى الوجهة. كل مسجل لديه وصول إلى معالجات متعددة ويتلقى رسالة السجل من المسجل. بعد ذلك ، يستخدم الملحقون المنسقون أو التخطيطات لتنسيق الأحداث وإرسالها إلى الوجهة المقابلة.

يمكن إيقاف تشغيل Appender باستخدام طريقة setLevel (Level.OFF). أكثر معالجات قياسية فيjava.util.loggingالعبوة كالتالي:

  • معالج الملفات: اكتب رسالة السجل إلى ملف
  • وحدة التحكم: يكتب رسالة السجل إلى وحدة التحكم

من أجل فهمك الأفضل ، قمت بشرح بعض الملحقات في قسم الخصائص.

التخطيط أو المنسِّقات

يتم استخدام تخطيط المُنسِّقات لتنسيق البيانات وتحويلها في حدث السجل.توفر أطر التسجيل تخطيطات لـ HTML و XML و Syslog و JSON والنص العادي والسجلات الأخرى.

  1. تنسيق بسيط : يولد رسائل نصية بالمعلومات الأساسية.
  2. XMLFormatter : يولد رسالة XML للسجل

من أجل فهمك الأفضل ، قمت بشرح بعض التخطيطات في قسم الخصائص.بهذا نصل إلى نهاية هذه المدونة حول 'Logger in Java'. آمل أن تكونوا واضحين فيما يتعلق بما تم تعليمه لكم في هذا المقال.

ماذا تفعل الإلحاق في جافا

تفحص ال من Edureka ، شركة تعليمية موثوقة عبر الإنترنت مع شبكة تضم أكثر من 250.000 متعلم راضٍ منتشرين في جميع أنحاء العالم تم تصميم دورة تدريب وشهادة Java J2EE و SOA من Edureka للطلاب والمهنيين الذين يرغبون في أن يصبحوا مطوري Java. تم تصميم الدورة التدريبية لمنحك السبق في برمجة Java وتدريبك على مفاهيم Java الأساسية والمتقدمة جنبًا إلى جنب مع العديد من أطر Java مثل Hibernate & Spring.

لديك سؤال لنا؟ يرجى ذكر ذلك في قسم التعليقات في مدونة 'Logger in Java' وسنعاود الاتصال بك في أقرب وقت ممكن.