يقدم لك محرر Downcodes دليلاً شاملاً لإدارة سجل مشروع Java. سوف تتعمق هذه المقالة في جميع جوانب إدارة سجل Java، بما في ذلك اختيار مكتبة السجل المناسبة (مثل Log4j وSLF4J)، وتحديد مستويات السجل (DEBUG، INFO، WARN، ERROR)، وتكوين وجهات إخراج السجل (وحدة التحكم، الملف، قاعدة البيانات) وأرشفة التسجيل والتدوير، بالإضافة إلى مراقبة السجل في الوقت الفعلي وتحسين التحليل، وما إلى ذلك. من خلال دراسة هذه المقالة، يمكنك تحسين مستوى إدارة السجل لمشاريع Java بشكل فعال، ومراقبة حالة تشغيل النظام بشكل أفضل، واكتشاف المشكلات وحلها في الوقت المناسب، وبالتالي تحسين موثوقية النظام وقابلية صيانته.
في مشاريع Java، يمكن إدارة السجلات باستخدام مكتبات السجل (مثل Log4j وSLF4J)، وتحديد مستويات السجل (مثل DEBUG، وINFO، وWARN، وERROR)، وتكوين إخراج السجل (مثل وحدة التحكم، والملفات، وقواعد البيانات)، وتنفيذ يتم تنفيذ السجلات والتناوب. من بينها، يعد استخدام مكتبة السجل الخطوة الأكثر أهمية، لأنها توفر وظائف تسجيل مرنة وقوية.
يتيح استخدام مكتبة التسجيل مثل Log4j للمطورين تسجيل المعلومات المهمة والأخطاء ومعلومات تصحيح الأخطاء بسهولة أثناء تشغيل البرنامج. Log4j هو إطار عمل تسجيل ناضج وغني بالميزات يسمح بتكوين مستويات السجل وتنسيقات الإخراج، ويدعم وجهات إخراج السجل المتعددة، مثل وحدات التحكم والملفات وقواعد البيانات وما إلى ذلك. بالإضافة إلى ذلك، تسمح ملفات التكوين للمطورين بضبط سلوك التسجيل ديناميكيًا دون تعديل التعليمات البرمجية.
في مشاريع Java، يعد استخدام مكتبة السجلات الناضجة أساسًا لإدارة السجل. تتضمن مكتبات السجلات شائعة الاستخدام Log4j، وSLF4J، وLogback، وما إلى ذلك.
Log4j هو مكون تسجيل مفتوح المصدر تم تطويره بواسطة مؤسسة Apache. تكوينه مرن ويدعم أهداف إخراج السجل المتعددة.
أولاً، قم بإضافة تبعية Log4j من خلال Maven:
بعد ذلك، قم بإنشاء ملف التكوين log4j.properties:
# حدد مسجل الجذر، واضبط مستوى السجل على DEBUG، ووجهة الإخراج هي وحدة التحكم والملف
log4j.rootLogger=DEBUG، وحدة التحكم، الملف
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c %x - %m%n
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/application.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c %x - %m%n
استخدم Log4j لتسجيل الدخول الرمز:
import org.apache.log4j.Logger;
الطبقة العامة MyApp {
مسجل نهائي ثابت خاص = Logger.getLogger(MyApp.class);
الفراغ الثابت العام MAIn(String[] args) {
logger.debug(رسالة التصحيح);
logger.info(رسالة معلومات);
logger.warn(رسالة تحذير);
logger.error(رسالة خطأ);
}
}
SLF4J (واجهة التسجيل البسيطة لـ Java) هي واجهة تسجيل بسيطة تسمح بالربط بأطر تسجيل محددة (مثل Log4j وLogback) في وقت التشغيل.
أضف تبعيات SLF4J وLogback من خلال Maven:
قم بإنشاء ملف التكوين logback.xml:
استخدم SLF4J لتسجيل الدخول بالرمز:
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
الطبقة العامة MyApp {
مسجل نهائي ثابت خاص = LoggerFactory.getLogger(MyApp.class);
public static void main(String[] args) {
logger.debug(رسالة التصحيح);
logger.info(رسالة معلومات);
logger.warn(رسالة تحذير);
logger.error(رسالة خطأ);
}
}
يعد مستوى السجل مفهومًا مهمًا في التسجيل، وهو ما يحدد معلومات السجل التي سيتم تسجيلها. تتضمن مستويات السجل الشائعة DEBUG وINFO وWARN وERROR.
يتم استخدام سجلات مستوى DEBUG لتسجيل معلومات التطوير والتصحيح التفصيلية. يتم استخدامه عادةً في بيئات التطوير والاختبار ويتم تعطيله في بيئات الإنتاج.
logger.debug(طريقة الإدخال لحساب () مع المعلمات: a={}, b={}, a, b);
تُستخدم سجلات مستوى INFO لتسجيل معلومات التشغيل العادية للنظام، مثل بدء التشغيل والتوقف والأحداث الأخرى. إنها تساعدنا على فهم حالة تشغيل النظام دون أن تكون مفصلة للغاية.
logger.info(بدأ التطبيق بنجاح);
تُستخدم سجلات مستوى WARN لتسجيل المشكلات المحتملة أو الأحداث المهمة. وهي تشير إلى أن النظام قد يواجه مشكلات ولكنه قد يستمر في العمل.
logger.warn(مساحة القرص منخفضة: {} ميغابايت متبقية، المساحة المتبقية)؛
تُستخدم سجلات مستوى الخطأ لتسجيل الأخطاء أو الاستثناءات الجسيمة في النظام. تشير إلى أن النظام يواجه مشكلة ويتطلب اهتمامًا فوريًا.
logger.error(فشل الاتصال بقاعدة البيانات، e);
يحدد تكوين إخراج السجل مكان تخزين معلومات السجل. تتضمن وجهات إخراج السجل الشائعة وحدة التحكم والملفات وقواعد البيانات.
يعد إخراج وحدة التحكم هو أسلوب إخراج السجل الأساسي وهو مناسب لمراحل التطوير وتصحيح الأخطاء.
في Log4j:
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{ISO8601} [%t] %-5p %c %x - %m%n
يعد إخراج الملف هو أسلوب تخزين السجل الأكثر شيوعًا وهو مناسب لبيئات الإنتاج. من خلال كتابة السجلات إلى الملفات، يمكن حفظ معلومات السجل باستمرار لتحليلها لاحقًا.
في تسجيل الدخول:
يمكن بسهولة الاستعلام عن السجلات وتحليلها في قاعدة بيانات، وهي مناسبة بشكل خاص للأنظمة الموزعة والأنظمة واسعة النطاق.
في تسجيل الدخول:
INSERT INTO السجل (الطابع الزمني، المستوى، المسجل، الرسالة، الاستثناء)
قيم (؟، ؟، ؟، ؟، ؟)
من أجل منع ملفات السجل من أن تصبح كبيرة جدًا وتؤثر على أداء النظام ومساحة التخزين، من الضروري أرشفة السجل وتدويره.
تشير أرشفة السجل إلى ضغط ملفات السجل القديمة وتخزينها لتوفير المساحة وتسهيل الإدارة.
في تسجيل الدخول:
ويعني تدوير السجل أنه عندما يصل ملف السجل إلى حجم أو وقت معين، يتم إنشاء ملف سجل جديد للإدارة والتحليل.
في Log4j:
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=logs/application.log
log4j.appender.file.MaxFileSize=10MB
log4j.appender.file.MaxBackupIndex=5
تساعد مراقبة السجل في الوقت الفعلي على اكتشاف مشكلات النظام في الوقت المناسب وتوفير الاستجابة السريعة. تتضمن أدوات مراقبة السجل الشائعة ELK Stack (Elasticsearch وLogstash وKibana) وGraylog.
ELK Stack عبارة عن منصة قوية لإدارة وتحليل السجلات تتألف من Elasticsearch وLogstash وKibana.
تثبيت Elasticsearch:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-linux-x86_64.tar.gz
القطران -xzf elasticsearch-7.10.1-linux-x86_64.tar.gz
مؤتمر نزع السلاح Elasticsearch-7.10.1
./bin/elasticsearch
تثبيت لوغستاش:
wget https://artifacts.elastic.co/downloads/logstash/logstash-7.10.1-linux-x86_64.tar.gz
القطران -xzf logstash-7.10.1-linux-x86_64.tar.gz
مؤتمر نزع السلاح logstash-7.10.1
./bin/logstash -e 'input { stdin { } } الإخراج { elasticsearch { hosts => [localhost:9200] } }'
تثبيت كيبانا:
wget https://artifacts.elastic.co/downloads/kibana/kibana-7.10.1-linux-x86_64.tar.gz
القطران -xzf كيبانا-7.10.1-لينكس-x86_64.tar.gz
قرص مضغوط كيبانا-7.10.1
./bin/kibana
قم بإنشاء ملف تكوين Logstash logstash.conf:
مدخل {
ملف {
المسار => /path/to/your/logfile.log
start_position => البداية
}
}
الإخراج {
البحث المرن {
المضيفين => [المضيف المحلي: 9200]
الفهرس => logstash-%{+YYYY.MM.dd}
}
}
بدء تشغيل السجل:
./bin/logstash -f logstash.conf
Graylog هي أداة قوية أخرى لإدارة السجلات توفر إمكانات جمع السجلات وتخزينها وتحليلها وتصورها في الوقت الفعلي.
تثبيت مونغو دي بي:
wget -qO - https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add -
echo deb [arch=amd64,arm64] https://repo.mongodb.org/apt/ubuntu focus/mongodb-org/4.4 multiverse | sudo Tee /etc/apt/sources.list.d/mongodb-org-4.4. قائمة
سودو الرابطة بين الحصول على التحديث
Sudo apt-get install -y mongodb-org
سودو systemctl بدء mongod
سودو systemctl تمكين mongod
تثبيت Elasticsearch:
wget https://artifacts.elastic.co/downloads/elasticsearch/elasticsearch-7.10.1-linux-x86_64.tar.gz
القطران -xzf elasticsearch-7.10.1-linux-x86_64.tar.gz
مؤتمر نزع السلاح Elasticsearch-7.10.1
./bin/elasticsearch
تثبيت Graylog:
wget https://packages.graylog2.org/repo/packages/graylog-3.3-repository_latest.deb
Sudo dpkg -i Graylog-3.3-repository_latest.deb
سودو الرابطة بين الحصول على التحديث
sudo apt-get install Graylog-server
Sudo systemctl يبدأ تشغيل خادم Graylog
Sudo systemctl يمكّن خادم Graylog
قم بتحرير ملف تكوين Graylog /etc/graylog/server/server.conf وقم بتعيين المعلمات مثل root_password_sha2 وpassword_secret.
يعد تحليل السجل وتحسينه خطوات مهمة في إدارة السجل، ومن خلال تحليل بيانات السجل، يمكن اكتشاف اختناقات النظام ومشاكل الأداء والشذوذات.
يمكن إجراء تحليل السجل من خلال أدوات إدارة السجل (مثل ELK Stack أو Graylog) أو البرامج النصية المخصصة.
استخدم Kibana لتحليل السجلات:
افتح Kibana، وقم بزيارة http://localhost:5601 لتكوين وضع الفهرس logstash-* في صفحة Discover، وعرض بيانات السجل وتحليلهايتضمن تحسين السجل بشكل أساسي تقليل سجلات السجل غير الضرورية، وتعيين مستويات السجل بشكل مناسب، وتحسين تنسيق السجل، وما إلى ذلك.
في بيئة الإنتاج، قم بتعيين مستوى السجل إلى INFO أو WARN لتقليل كمية السجلات:
log4j.rootLogger=معلومات، وحدة التحكم، ملف
استخدم التسجيل غير المتزامن لتقليل تأثير التسجيل على أداء النظام:
من خلال الخطوات المذكورة أعلاه، يمكن أن تصبح إدارة السجل في مشاريع Java أكثر كفاءة وموحدة. إن استخدام مكتبة سجلات مناسبة، وتحديد مستويات السجل، وتكوين مخرجات السجل، وتنفيذ أرشفة السجل وتدويره، وإجراء مراقبة السجل في الوقت الفعلي، وتحليل السجل وتحسينه، يمكن أن يساعد المطورين على فهم حالة تشغيل النظام بشكل أفضل، واكتشاف المشكلات وحلها في في الوقت المناسب، وتحسين موثوقية النظام وقابلية الصيانة.
1. ما أهمية إدارة السجلات في مشاريع Java؟ تعد السجلات جزءًا لا غنى عنه في مشاريع Java، حيث يمكنها مساعدة المطورين على تتبع حالة تشغيل التطبيقات واستكشاف الأخطاء والاستثناءات وإصلاحها. من خلال إدارة السجلات بشكل فعال، يمكنك تحسين إمكانية صيانة التعليمات البرمجية وتحسين أداء التطبيق والحصول على فهم أفضل لسلوك المستخدم وسلامة النظام.
2. ما هي أطر إدارة السجل الشائعة التي يمكن استخدامها في مشاريع Java؟ في مشاريع Java، هناك العديد من أطر عمل إدارة السجلات الشائعة للاختيار من بينها، مثل Log4j وLogback وSLF4J. توفر هذه الأطر مجموعة كبيرة من الوظائف، مثل التحكم في مستوى السجل، وتنسيق السجل، وتكوين هدف إخراج السجل، وما إلى ذلك، ويمكن تهيئتها واستخدامها بمرونة وفقًا لاحتياجات المشروع.
3. كيفية تنفيذ إدارة السجل في مشاريع جافا؟ لتنفيذ إدارة السجل في مشروع Java، تحتاج أولاً إلى تقديم إطار عمل مناسب لإدارة السجل وتكوينه وفقًا لمتطلبات المشروع. ثم استخدم كائن المسجل في التعليمات البرمجية الخاصة بك لإخراج معلومات السجل. يمكنك اختيار مستوى السجل المناسب (مثل DEBUG أو INFO أو WARN أو ERROR) وفقًا للسيناريوهات والاحتياجات المختلفة، واستخدام طريقة التسجيل المناسبة (مثل التصحيح أو المعلومات أو التحذير أو الخطأ) لتسجيل المعلومات ذات الصلة. وفي الوقت نفسه، يمكنك تخصيص تنسيق السجل ووجهة الإخراج وما إلى ذلك حسب الحاجة. أخيرًا، استنادًا إلى نتائج إخراج السجل، يمكن إجراء تحليل السجل المناسب ومعالجته لتحسين جودة التطبيق وأدائه.
آمل أن تساعدك هذه المقالة على فهم إدارة سجل مشروع Java وتطبيقها بشكل أفضل. سيستمر محرر Downcodes في تقديم المزيد من المعلومات التقنية لك!