Log4j
أباتشي لوج فور جيه هي أداة تسجيل بيانات مبنية على لغة جافا ، كتبها في الأصل سيكي غولجو. وهي جزء من خدمات تسجيل أباتشي ، وهو مشروع تابع لمؤسسة برمجيات أباتشي . لوج فور جيه هي إحدى أطر عمل تسجيل البيانات العديدة في جافا .
قام غولجو منذ ذلك الحين بإنشاء SLF4J و Reload4j و Logback [ 5 ] وهي بدائل لـ Log4j . [ 6 ]
قام فريق Apache Log4j بتطوير Log4j 2 [ 7 ] استجابةً لمشاكل Log4j 1.2 و1.3 java.util.loggingوLogback، حيث عالج المشكلات التي ظهرت في تلك الأطر. [ 8 ] بالإضافة إلى ذلك، قدّم Log4j 2 بنيةً إضافيةً تجعله أكثر قابليةً للتوسيع من سابقه. لا يتوافق Log4j 2 مع الإصدارات السابقة 1.x، [ 9 ] على الرغم من توفر "مُهايئ" له. في 5 أغسطس 2015، أعلنت لجنة إدارة مشروع خدمات تسجيل أباتشي أن Log4j 1 قد وصل إلى نهاية عمره الافتراضي، ونصحت مستخدميه بالترقية إلى Apache Log4j 2. [ 10 ] وفي 12 يناير 2022، أصدر سيكي غولجو نسخة معدلة ومُعاد تسميتها من Log4j 1.2 تحت اسم Reload4j 1.2.18.0 بهدف إصلاح المشكلات الأكثر إلحاحًا في Log4j 1.2.17 التي تراكمت منذ إصداره في عام 2013. [ 11 ]
في 9 ديسمبر 2021، نشر فريق أمن Alibaba Cloud ثغرة أمنية خطيرة (ثغرة اليوم الصفر) تسمح بتنفيذ تعليمات برمجية عشوائية في Log4j 2 ، وأطلق عليها اسم " Log4Shell ". [ 12 ] وقد وصفتها شركة Tenable بأنها "أكبر وأخطر ثغرة أمنية في العقد الماضي". [ 13 ]
أباتشي لوج فور جي 2
يُعدّ Apache Log4j 2 الإصدارَ الأحدث من Log4j 1 الذي طُرِحَ رسميًا في يوليو 2015. أُعيدَت كتابةُ إطار العمل من الصفر، واستُلهمَ من حلول تسجيل الأحداث الموجودة، بما في ذلك Log4j 1 وjava.util.logging. وتتمثل الاختلافات الرئيسية [ 14 ] [ 15 ] عن Log4j 1 فيما يلي:
- تحسين الموثوقية. لا تُفقد الرسائل أثناء إعادة تهيئة الإطار كما هو الحال في Log4j 1 أو Logback
- قابلية التوسع: يدعم Log4j 2 نظامًا للملحقات يسمح للمستخدمين بتعريف وتكوين مكونات مخصصة
- صيغة تكوين مبسطة
- يدعم تكوينات XML و JSON و YAML والخصائص
- فلاتر محسّنة
- يدعم البحث عن الخصائص للقيم المحددة في ملف التكوين، وخصائص النظام، ومتغيرات البيئة، وخريطة سياق مؤشر الترابط، والبيانات الموجودة في الحدث
- دعم واجهات برمجة التطبيقات المتعددة: يمكن استخدام Log4j 2 مع التطبيقات التي تستخدم واجهات برمجة التطبيقات Log4j 2 و Log4j 1.2 و SLF4J و Commons Logging و java.util.logging (JUL).
- مستويات تسجيل مخصصة
- دعم لامدا على غرار جافا 8 لـ "التسجيل الكسول"
- علامات
- دعم كائنات الرسائل المُعرَّفة من قِبل المستخدم
- "خالية من البيانات غير الضرورية أو منخفضة البيانات غير الضرورية" في التكوينات الشائعة
- تحسينات
- دعم مُحسّن لنظام لينكس
من أبرز ميزات Log4j 2 أداء "المسجلات غير المتزامنة". [ 16 ] يستخدم Log4j 2 مكتبة LMAX Disruptor . [ 17 ] تقلل هذه المكتبة من الحاجة إلى تأمين النواة وتزيد من أداء التسجيل بمقدار 12 ضعفًا. على سبيل المثال، في نفس البيئة، يستطيع Log4j 2 كتابة أكثر من 18 مليون رسالة في الثانية، بينما لا تتجاوز رسائل أطر العمل الأخرى مثل Logback وLog4j 1 مليوني رسالة في الثانية.
سمات
مستويات تسجيل Log4j
يوضح الجدول التالي مستويات التسجيل والرسائل المدمجة في Log4j، مرتبة تنازليًا حسب درجة الخطورة. يسرد العمود الأيسر رمز مستوى التسجيل في Log4j، بينما يقدم العمود الأيمن وصفًا موجزًا لكل مستوى.
| مستوى | وصف |
|---|---|
| عن | أعلى رتبة ممكنة، وهي مصممة لإيقاف تسجيل البيانات. |
| مميت | أخطاء جسيمة تؤدي إلى إنهاء مبكر. من المتوقع أن تظهر هذه الأخطاء فورًا على شاشة الحالة. |
| خطأ | أخطاء أخرى أثناء التشغيل أو ظروف غير متوقعة. من المتوقع أن تظهر هذه الأخطاء فورًا على شاشة الحالة. |
| تحذير | استخدام واجهات برمجة التطبيقات القديمة، وسوء استخدام واجهات برمجة التطبيقات، والأخطاء "شبه" واردة، وغيرها من حالات التشغيل غير المرغوب فيها أو غير المتوقعة، ولكنها ليست بالضرورة "خاطئة". توقع أن تظهر هذه الأمور فورًا على لوحة التحكم. |
| معلومات | أحداث وقت التشغيل المهمة (بدء التشغيل/إيقاف التشغيل). من المتوقع أن تظهر هذه الأحداث فورًا على وحدة التحكم، لذا كن حذرًا واحرص على تقليلها قدر الإمكان. |
| تصحيح الأخطاء | معلومات تفصيلية حول تدفق البيانات عبر النظام. من المتوقع أن تُسجل هذه المعلومات في سجلات النظام فقط. عمومًا، يجب أن تُسجل معظم البيانات التي يُسجلها تطبيقك بصيغة DEBUG. |
| يتعقب | معلومات أكثر تفصيلاً. من المتوقع أن تُكتب هذه المعلومات في سجلات النظام فقط. منذ الإصدار 1.2.12. [ 18 ] |
مستويات تسجيل مخصصة
يُتيح Log4j 2 للمستخدمين تحديد مستويات التسجيل الخاصة بهم. [ 19 ] كما يُوفر أداة لتوليد شفرة المصدر لإنشاء مُسجلات تدعم مستويات تسجيل مُخصصة تُطابق مستويات التسجيل المُدمجة. يُمكن لمستويات التسجيل المُخصصة أن تُكمل مستويات التسجيل المُدمجة أو أن تحل محلها.
تكوين Log4j
يمكن تهيئة Log4j [ 20 ] عبر ملف تهيئة أو باستخدام كود Java. يمكن كتابة ملفات التهيئة بصيغة XML أو JSON أو YAML أو ملف خصائص . يمكن تعريف ثلاثة مكونات رئيسية: المسجلات، والملحقات، والتخطيطات. تتميز تهيئة التسجيل عبر ملف بإمكانية تفعيل التسجيل أو تعطيله دون تعديل التطبيق الذي يستخدم Log4j. على سبيل المثال، يمكن السماح للتطبيق بالعمل مع تعطيل التسجيل حتى حدوث مشكلة، ثم إعادة تفعيله ببساطة عن طريق تعديل ملف التهيئة.
تُسمى مُسجِّلات السجلات [ 21 ] وجهات رسائل السجل. وهي الأسماء التي يعرفها تطبيق جافا. يمكن ضبط كل مُسجِّل بشكل مستقل لتحديد مستوى التسجيل (خطأ فادح، خطأ، إلخ) الذي يسجله حاليًا. في الإصدارات الأولى من Log4j، كانت تُسمى هذه المستويات "الفئة" و"الأولوية"، ولكنها تُسمى الآن "المُسجِّل" و"المستوى" على التوالي. يمكن للمُسجِّل إرسال رسائل السجل إلى عدة مُلحقات.
تُنفَّذ المخرجات الفعلية بواسطة المُلحقات (Appenders) . [ 22 ] تتوفر العديد من المُلحقات بأسماء وصفية، مثل FileAppender وRollingFileAppender وConsoleAppender وSocketAppender وSyslogAppender وSMTPAppender. أضاف Log4j 2 مُلحقات للكتابة إلى Apache Flume ، وواجهة برمجة تطبيقات Java Persistence API ، وApache Kafka ، وقواعد بيانات NoSQL ، والملفات المُرتبطة بالذاكرة ، وملفات الوصول العشوائي [ 23 ] ، ونقاط نهاية ZeroMQ . يمكن ربط عدة مُلحقات بأي مُسجِّل (Logger)، مما يُتيح تسجيل نفس المعلومات في مُخرجات متعددة؛ على سبيل المثال، في ملف محليًا وفي مُستمع مقبس على جهاز كمبيوتر آخر.
تستخدم مُلحقات البيانات التخطيطات [ 24 ] لتنسيق إدخالات السجل. ومن الطرق الشائعة لتنسيق ملفات السجل التي تُعرض سطرًا سطرًا هي PatternLayout، التي تستخدم سلسلة نمطية، على غرار دالة printf في لغتي C و C++ . كما توجد مُنسقات HTMLLayout وXMLLayout للاستخدام عندما تكون تنسيقات HTML أو XML أكثر ملاءمة، على التوالي. أضاف Log4j 2 تخطيطات لملفات CSV وGraylog Extended Log Format (GELF) [ 25 ] وJSON و YAML وRFC-5424 [ 26 ] .
في Log4j 2، يُمكن تعريف عوامل التصفية [ 27 ] على عناصر التكوين لتوفير تحكم أدق في تحديد مدخلات السجل التي يجب معالجتها بواسطة كل من المسجلات والملحقات. بالإضافة إلى التصفية حسب مستوى السجل ومطابقة التعبيرات النمطية على سلسلة الرسالة، أضاف Log4j 2 عوامل تصفية الاندفاع، وعوامل تصفية الوقت، والتصفية حسب سمات أحداث السجل الأخرى مثل العلامات أو خريطة سياق مؤشر الترابط، وعوامل تصفية نص JSR 223 البرمجي.
لتصحيح أخطاء التكوين غير السليم:
- في إعدادات Log4j 2، اضبط
statusالسمة على TRACE لإرسال مخرجات تسجيل الحالة الداخلية إلى الإخراج القياسي . لتمكين تسجيل الحالة قبل العثور على الإعداد، استخدم خاصية Java VM-Dorg.apache.logging.log4j.simplelog.StatusLogger.level=trace. - في Log4j 1، استخدم خاصية Java VM
-Dlog4j.debug.
لمعرفة مكان تحميل ملف تكوين log4j2.xml من خلال أداة الفحص getClass().getResource("/log4j2.xml").
يوجد أيضًا إعداد افتراضي ضمني لـ Log4j يُعرف باسم "غير مُهيأ"، وهو إعداد تطبيق Java مُجهز بـ Log4j ولكنه يفتقر إلى أي إعدادات خاصة بـ Log4j. يُطبع هذا الإعداد تحذيرًا إلى الإخراج القياسي يفيد بأن البرنامج غير مُهيأ، بالإضافة إلى رابط موقع Log4j الإلكتروني حيث يمكن الاطلاع على تفاصيل التحذير والإعدادات. إلى جانب طباعة هذا التحذير، لن يطبع تطبيق Log4j غير المُهيأ سوى سجلات الأخطاء (ERROR) أو الأخطاء الفادحة (FATAL) إلى الإخراج القياسي.
مثال لـ Log4j 2
<?xml version="1.0" encoding="UTF-8"?> <Configuration status= "trace" monitorInterval= "60" > <Properties> <Property name= "filename" > target/test.log </Property> </Properties> <Appenders> <Console name= "STDOUT" > <PatternLayout pattern= "%d %p %c{1.} [%t] %m%n" /> </Console><File name= "file" fileName= "${filename}" > <PatternLayout> <pattern> %d %p %c{1.} [%t] %m%n </pattern> </PatternLayout> </File> </Appenders> <Loggers> <!-- المسجلات التي يبدأ اسمها بـ 'org.springframework' ستسجل فقط الرسائل من المستوى "info" أو أعلى؛ إذا قمت باسترداد المسجلات باستخدام اسم الفئة (على سبيل المثال Logger.getLogger(AClass.class)) وإذا كانت AClass جزءًا من حزمة org.springframework، فستنتمي إلى هذه الفئة --> <Logger name= "org.springframework" level= "info" additivity= "false" /><!-- مثال على عامل التصفية: بالنسبة للمسجلات التي يبدأ اسمها بـ 'com.mycompany.myproduct'، يتم أيضًا إرسال إدخالات السجل من المستوى "debug" أو أعلى، والتي تحتوي بيانات ThreadContextMap الخاصة بها على زوج المفتاح والقيمة "test=123"، إلى مُلحق "STDOUT". --> <Logger name= "com.mycompany.myproduct" level= "debug" additivity= "true" > <ThreadContextMapFilter> <KeyValuePair key= "test" value= "123" /> </ThreadContextMapFilter> <AppenderRef ref= "STDOUT" /> </Logger> <!-- بشكل افتراضي، يتم تسجيل جميع رسائل السجل من المستوى "trace" أو أعلى. يتم إرسال رسائل السجل إلى مُلحق "file"، بينما يتم إرسال رسائل السجل من المستوى "error" أو أعلى إلى مُلحق "STDOUT". < Root level= "trace" > <AppenderRef ref= "file" /> <AppenderRef ref= "STDOUT" level= "error" /> </Root> </Loggers> </Configuration>مثال لـ Log4j 1.2
<?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//LOGGER" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd"> <log4j:configuration> <!-- المُلحق هو وجهة إخراج، مثل وحدة التحكم أو ملف؛ يتم اختيار أسماء المُلحقات بشكل عشوائي. < appender name= "stdout" class= "org.apache.log4j.ConsoleAppender" > <layout class= "org.apache.log4j.PatternLayout" > <param name= "ConversionPattern" value= "%d{ABSOLUTE} %5p %c{1}:%L - %m%n" /> </layout> </appender> <!-- ستسجل مسجلات الفئة 'org.springframework' فقط الرسائل من المستوى "info" أو أعلى؛ إذا قمت باسترداد المسجلات باستخدام اسم الفئة (على سبيل المثال Logger.getLogger(AClass.class)) وإذا كانت AClass جزءًا من حزمة org.springframework، فستنتمي إلى هذه الفئة --> <logger name= "org.springframework" > <level value= "info" /> </logger><!-- تم ضبط جميع إعدادات Spring على "info"، ولكن بالنسبة للفئة PropertyEditorRegistrySupport، نريد تسجيل "debug" --> <logger name= "org.springframework.beans.PropertyEditorRegistrySupport" > <level value= "debug" /> </logger> <logger name= "org.acegisecurity" > <level value= "info" /> </logger> <root> <!-- سيتم تسجيل جميع رسائل السجل من المستوى "debug" أو أعلى، ما لم يتم تحديد خلاف ذلك. سيتم تسجيل جميع رسائل السجل في المُلحق "stdout"، ما لم يتم تحديد خلاف ذلك. --> <level value= "debug" /> <appender-ref ref= "stdout" /> </root> </log4j:configuration>تي تي سي سي
TTCC هو تنسيق رسائل يستخدمه log4j. [ 28 ] TTCC هو اختصار لـ Time Thread Category Component (مكون فئة مؤشر الوقت) . ويستخدم النمط التالي:
%r [%t] %-5p %c %x - %m%n
أين
| ذاكري | وصف |
|---|---|
| %r | يُستخدم لإخراج عدد المللي ثانية التي انقضت من إنشاء التخطيط حتى إنشاء حدث التسجيل. |
| %t | يُستخدم لإخراج اسم الخيط الذي أنشأ حدث التسجيل. |
| %p | يُستخدم لإخراج أولوية حدث التسجيل. |
| %c | يُستخدم لإخراج فئة حدث التسجيل. |
| %x | يُستخدم لإخراج سياق التشخيص المتداخل (NDC) المرتبط بالخيط الذي أنشأ حدث التسجيل. [ 29 ] |
| %X{key} | يُستخدم لإخراج سياق التشخيص المُرتبط (MDC) بالخيط الذي أنشأ حدث التسجيل للمفتاح المحدد. [ 30 ] |
| %م | تُستخدم لإخراج الرسالة التي يوفرها التطبيق والمرتبطة بحدث التسجيل. |
| %n | يُستخدم لإخراج حرف أو أحرف سطر جديد خاصة بالمنصة . |
مخرجات المثال467 [main] INFO org.apache.log4j.examples.Sort - الخروج من الدالة الرئيسية.
الموانئ
- log4c – منفذ للغة C. Log4C مكتبة تسجيل مبنية على لغة C ، متاحة على SourceForge بموجب ترخيص LGPL . تتوفر ملفات autoconf و automake لأنظمة تشغيل Unix المختلفة. أما على نظام Windows، فيتوفر ملف Makefile للاستخدام مع MSVC . يمكن للمطورين أيضًا استخدام نظام make الخاص بهم لتجميع الكود المصدري، وذلك حسب متطلبات هندسة البناء لديهم. يمكن تهيئة نسخة من مكتبة log4c بثلاث طرق: باستخدام متغيرات البيئة ، أو برمجيًا، أو عبر ملف تهيئة XML . تحتوي log4c على مُلحقات للملفات، والجداول، والملفات المُرتبطة بالذاكرة. (لا يوجد مُهايئ للمقابس). آخر إصدار هو 1.2.4، صدر عام 2013، ولم يعد المشروع قيد التطوير النشط. [ 31 ]
- Log4js - منفذ لجافا سكريبت . Log4js متاح بموجب ترخيص مؤسسة برمجيات أباتشي . من أبرز ميزات Log4js إمكانية تسجيل أحداث المتصفح عن بُعد على الخادم. باستخدام Ajax، يُمكن إرسال أحداث التسجيل بتنسيقات متعددة ( XML ، JSON ، ASCII ، إلخ) إلى الخادم لمعالجتها. يدعم Log4js الملحقات التالية : AjaxAppender، ConsoleAppender، FileAppender، JSConsoleAppender، MetatagAppender، وWindowsEventsAppender. كما يوفر فئات التخطيط التالية: BasicLayout، HtmlLayout، JSONLayout، وXMLLayout. أحدث إصدار متاح حتى عام 2021.كان الإصدار 2.0 بتاريخ 18 أكتوبر 2018. [ 32 ]
- log4javascript – منفذ آخر للغة جافا سكريبت. log4javascript هو إطار عمل لتسجيل الأحداث في جافا سكريبت، مبني على مكتبة log4j . أحدث إصدار متاح حتى عام 2021.كان الإصدار 1.4.13، وتم إصداره في 23 مايو 2015. [ 33 ]
- JSNLog – منفذ لجافا سكريبت . يقوم تلقائيًا بوضع الرسائل من مسجلات جافا سكريبت في سجلات جانب الخادم باستخدام مكون خادم .NET يتفاعل مع Log4Net أو NLog أو Elmah أو Common.Logging. يوفر هذا سجلًا متكاملًا لأحداث جانب العميل والخادم. تربط معرّفات الطلبات الأحداث المتعلقة بمستخدم معين. يتم التكوين عبر ملف web.config على جانب الخادم. يدعم تسجيل الاستثناءات، بما في ذلك تتبعات المكدس. اعتبارًا من عام 2021كان الإصدار الأخير هو 3.0.0، وكانت التحديثات تُجرى بانتظام. [ 34 ]
- أباتشي لوغ4نت – نسخة مُعدّلة للعمل مع إطار عمل مايكروسوفت دوت نت . أُنجز العمل الأولي بواسطة شركة نيووركس، وتبرعت به لمؤسسة برمجيات أباتشي في فبراير 2004. يشبه هذا الإطار إطار عمل لوغ4ج الأصلي، مع الاستفادة من الميزات الجديدة في بيئة تشغيل دوت نت. يوفر سياق التشخيص المتداخل (NDC) وسياق التشخيص المُرتبط (MDC). أحدث إصدار متاح حتى عام 2022.كان الإصدار 2.0.15. [ 35 ]
- log4perl – نسخة مكتوبة بلغة بيرل من log4j. كان الإصدار 1.57 الصادر في أكتوبر 2022 هو الإصدار الأحدث حتى عام 2024.[ 36 ]
- Apache log4php – "إطار عمل تسجيل متعدد الاستخدامات للغة PHP . في الأصل، كان عبارة عن نسخة من Apache log4j للغة PHP، وقد تطور ليشمل العديد من الميزات الخاصة بلغة PHP." [ 37 ]
- PL-SQL-Logging-Utility هو نسخة معدلة من log4j في PL/SQL. [ 38 ]
- Log4db2 هي أداة تسجيل لـ DB2 لـ LUW تستخدم تعليمات SQL مع كود SQL PL. [ 39 ]
- أباتشي Log4cxx – إطار عمل لتسجيل الأحداث في لغة C++، مصمم على غرار أباتشي log4j، ويستخدم بيئة تشغيل أباتشي المحمولة (APR) لمعظم التعليمات البرمجية الخاصة بالمنصة، ويمكن استخدامه على أي منصة تدعمها APR. أحدث إصدار هو 0.13.0، صدر عام 2022. [ 40 ]
- Log4r – مكتبة تسجيل شاملة ومرنة مكتوبة بلغة روبي لاستخدامها في برامج روبي. استُلهمت من مشروع Apache Log4j وتوفر الكثير من ميزاته. [ 41 ]
ثغرة أمنية في Log4Shell
تم اكتشاف ثغرة أمنية خطيرة ( ثغرة يوم الصفر) تسمح بتنفيذ تعليمات برمجية عن بُعد في Log4j 2، تحمل اسم "Log4Shell" ( CVE -2021-44228)، وأبلغت عنها شركة علي بابا إلى مؤسسة أباتشي في 24 نوفمبر 2021، ونُشرت في تغريدة بتاريخ 9 ديسمبر 2021. [ 12 ] تشمل الخدمات المتأثرة Cloudflare و iCloud و Minecraft: Java Edition [ 42 ] و Steam و Tencent QQ و Twitter . [ 43 ] [ 44 ] [ 45 ] منحت مؤسسة أباتشي للبرمجيات Log4Shell أعلى تصنيف خطورة (CVSS) وهو 10، نظرًا لاحتمالية تعرض ملايين الخوادم للاستغلال. [ 45 ] وصفت شركة الأمن السيبراني Tenable هذه الثغرة بأنها "أكبر وأخطر ثغرة أمنية في العقد الماضي" [ 13 ] ، بينما وصفها فري وورتلي من Lunasec بأنها "فشل تصميمي كارثي". [ 46 ]
في الولايات المتحدة، وصفت مديرة وكالة الأمن السيبراني وأمن البنية التحتية (CISA)، جين إيسترلي ، الثغرة الأمنية بأنها "خطيرة للغاية"، ونصحت الموردين بإعطاء الأولوية لتحديثات البرامج، [ 47 ] كما صنّف المكتب الاتحادي الألماني لأمن المعلومات (BSI) الثغرة الأمنية ضمن أعلى مستويات التهديد، واصفًا إياها بأنها "حالة تهديد بالغة الخطورة" (مترجم). [ 48 ] [ 49 ] ودعا المركز الكندي للأمن السيبراني (CCCS) المؤسسات إلى اتخاذ إجراءات فورية . [ 50 ]
كان من الممكن تعطيل الخاصية المُسببة للثغرة الأمنية من خلال إعدادات التكوين، والتي أُزيلت [ 51 ] في الإصدار 2.15.0-rc1 من Log4j (الذي صدر رسميًا في 6 ديسمبر 2021، قبل ثلاثة أيام من نشر الثغرة)، واستُبدلت بإعدادات مختلفة تُقيّد عمليات البحث عن بُعد، مما يُخفف من حدة الثغرة. [ 52 ] [ 53 ] ولزيادة الأمان، بدءًا من الإصدار 2.16.0، تم تعطيل جميع الميزات التي تستخدم JNDI ، والتي استندت إليها هذه الثغرة، افتراضيًا، كما أُزيل دعم عمليات البحث عن الرسائل. [ 54 ] [ 55 ]
انظر أيضاً
مراجع
- ↑ "تاريخ إصدار Apache Log4j 1.2" . apache.org . مؤسسة برمجيات أباتشي . تم الاطلاع عليه في 2 سبتمبر 2014 .
- ↑ "الإصدار 2.26.1" . 2 يوليو 2026. تم الاطلاع عليه في 3 يوليو 2026 .
- ↑ "ملاحظات الإصدار - Log4j" . logging.apache.org . تم الاطلاع عليه في 9 أكتوبر 2023 .
- ↑ "الصفحة الرئيسية لـ Reload4j" . reload4j.qos.ch . تم الاطلاع عليه بتاريخ 12 يناير 2022 .
- ↑ "الصفحة الرئيسية لـ Logback" . Logback.qos.ch . تم الاطلاع عليه بتاريخ 24 يوليو 2014 .
- ↑ غريغ، كادي (4 فبراير 2022). "تطوير رائع - خبراء الأمن السيبراني يتحدثون عن Log4J، والمصادر المفتوحة، والمزيد" . blog.sonatype.com . تم الاطلاع عليه في 16 أغسطس 2022 .
- ↑ "دليل Log4j 2 - Apache Log4j 2" . Logging.apache.org. 12 يوليو 2014. تم الاطلاع عليه في 24 يوليو 2014 .
- ↑ جورز، رالف (15 ديسمبر 2019). "لماذا تم إنشاء Log4j 2؟" . رالف جورز .
- ↑ "دليل Log4j 2 - Apache Log4j 2: أخبار" . Logging.apache.org. 12 يوليو 2014. تم الاطلاع عليه في 24 يوليو 2014 .
- ↑ «مشروع خدمات تسجيل أباتشي يُعلن عن انتهاء دعم Log4j 1؛ ويوصي بالترقية إلى Log4j 2» . blogs.apache.org. 5 أغسطس 2015. تم الاطلاع عليه في 3 يوليو 2016 .
- ↑ "مشروع إعادة تحميل 4j؛ ترحيل سهل من log4j 1.2.x" . qos.ch. 12 يناير 2022. تم الاطلاع عليه في 12 يناير 2022 .
- 1 2 "ما هي قصة كابوس Log4Shell الأمني؟" . Lawfare . 10 ديسمبر 2021.
- 1 2 "ثغرة برمجية تم اكتشافها مؤخراً 'أخطر ثغرة أمنية في العقد الماضي'"" . صحيفة الغارديان . أسوشيتد برس. 11 ديسمبر 2021.
- ↑ "الإصدار الجديد من log4j 2.0" . Grobmeier.de. 5 ديسمبر 2012. تم الاطلاع عليه بتاريخ 24 يوليو 2014 .
- ↑ "نظرة عامة على Log4j - Apache Log4j 2" . logging.apache.org. 5 يونيو 2016. تم الاطلاع عليه في 3 يوليو 2016 .
- ↑ "مسجلات Log4j 2 غير المتزامنة لتسجيل منخفض زمن الاستجابة - Apache Log4j 2" . Logging.apache.org. 12 يوليو 2014. تم الاطلاع عليه في 24 يوليو 2014 .
- ↑ "Disruptor by LMAX-Exchange" . Lmax-exchange.github.io . تم الاطلاع عليه بتاريخ 24 يوليو 2014 .
- ↑ "المستوى (واجهة برمجة تطبيقات Apache Log4j 1.2.17)" . Logging.apache.org. 9 يونيو 2012. تم الاطلاع عليه في 24 يوليو 2014 .
- ↑ "مستويات التسجيل المخصصة" . Logging.apache.org. 12 يوليو 2014. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ "التكوين" . Logging.apache.org. 5 يوليو 2016. تم الاسترجاع في 16 يوليو 2016 .
- ↑ "البنية" . Logging.apache.org. 5 يوليو 2016. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ "الملحقات" . Logging.apache.org. 5 يوليو 2016. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ "RandomAccessFile" . docs.oracle.com. 28 يوليو 2011. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ "التخطيطات" . Logging.apache.org. 5 يوليو 2016. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ "GELF" . docs.graylog.org. 8 يونيو 2016. مؤرشف من الأصل في 9 فبراير 2020. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ جيرهاردز، ر. (1 مارس 2009). "RFC 5424 - بروتوكول Syslog" . tools.ietf.org. doi : 10.17487/RFC5424 . تم الاطلاع عليه في 16 يوليو 2016 .
{{cite journal}}يتطلب الاستشهاد بالمجلة ( مساعدة )|journal= - ↑ "المرشحات" . Logging.apache.org. 5 يوليو 2016. تم الاطلاع عليه في 16 يوليو 2016 .
- ↑ "TTCCLayout (واجهة برمجة تطبيقات Apache Log4j 1.2.17)" . Logging.apache.org. 9 يونيو 2012. تم الاطلاع عليه في 24 يوليو 2014 .
- ↑ "الفئة NDC" . مؤرشف من الأصل في 20 أغسطس 2007. تم الاطلاع عليه في 11 ديسمبر 2021 .
- ↑ "MDC (واجهة برمجة تطبيقات Apache Log4j 1.2.17)" . Logging.apache.org. 9 يونيو 2012. تم الاطلاع عليه في 24 يوليو 2014 .
- ↑ "إطار عمل تسجيل الأحداث للغة C | تنزيلات مجانية لبرامج إدارة النظام من موقع Sourceforge.net " . تم الاطلاع عليه بتاريخ 24 يوليو 2014 .
- ↑ "strtti/Log4js - إطار عمل تسجيل الأحداث للغة جافا سكريبت بدون تبعيات وقت التشغيل" . GitHub . تم الاطلاع عليه بتاريخ 11 ديسمبر 2021 .
- ↑ "إطار عمل لتسجيل الأحداث باستخدام جافا سكريبت" . log4javascript . تم الاطلاع عليه بتاريخ 11 ديسمبر 2021 .
- ↑ "تسجيل أخطاء جافا سكريبت في سجل الخادم الخاص بك" . JSNLog . تم الاطلاع عليه في 11 ديسمبر 2021 .
- ↑ "Apache log4net" . Logging.apache.org . تم الاطلاع عليه بتاريخ 11 ديسمبر 2021 .
- ↑ شيلي، مايك؛ غوس، كيفن. "log4perl - log4j لـ Perl" . log4perl . تم الاسترجاع في 11 ديسمبر 2021 .
- ↑ "خدمات تسجيل أباتشي" . Apache.org . تم الاطلاع عليه بتاريخ 11 مارس 2015 .
- ↑ "tmuth/Logger-A-PL-SQL-Logging-Utility — GitHub" . Github.com . تم الاطلاع عليه بتاريخ 24 يوليو 2014 .
- ↑ "Log4db2 by angoca" . Angoca.github.io . تم الاطلاع عليه بتاريخ 24 يوليو 2014 .
- ↑ "log4cxx - سجل التغييرات" . logging.apache.org .
- ↑ "دليل Log4r" . log4r.rubyforge.org . تم الاطلاع عليه بتاريخ 13 أبريل 2017 .
{{cite web}}: CS1 maint: deprecated archiveal service ( link ) - ↑ "ثغرة أمنية في ماينكرافت: إصدار جافا" . ماينكرافت . 10 ديسمبر 2021.
- ↑ غودين، دان (9 ديسمبر 2021). "ثغرة أمنية في أداة Log4j واسعة الانتشار تُشكّل تهديدًا خطيرًا للإنترنت" . آرس تكنيكا . تاريخ الاسترجاع: 10 ديسمبر 2021 .
- ↑ "أخطر ثغرة أمنية من نوع RCE في Apache Log4j تم اكتشافها على الإنترنت" . مركز سايبر كيندرا . 9 ديسمبر 2021. تم الاطلاع عليه بتاريخ 10 ديسمبر 2021 .
- 1 2 موت، ناثانيال (10 ديسمبر 2021). "عدد لا يحصى من الخوادم عرضة لثغرة استغلال Apache Log4j Zero-Day" . مجلة PC . تم الاطلاع عليه في 10 ديسمبر 2021 .
- ↑ نيومان، ليلي هاي (10 ديسمبر 2021). "الإنترنت يحترق" . وايرد - عبر www.wired.com.
- ↑ "بيان من مدير وكالة الأمن السيبراني وأمن البنية التحتية (CISA) إيسترلي بشأن ثغرة "Log4j" . وكالة الأمن السيبراني وأمن البنية التحتية (CISA) . واشنطن. 11 ديسمبر 2021.
- ↑ "BSI تحذير vor Sicherheitslücke" [ BSI يحذر من الثغرات الأمنية ] . تاجيسشاو (في المانيا). 12 ديسمبر 2021.
- ↑ "Warnstufe Rot: Schwachstelle Log4Shell führt zu extrem kritischer Bedrohungslage" [ إنذار أحمر: تسبب ثغرة Log4Shell حالة تهديد حرجة للغاية ] . الخدمة الصحفية لـ BSI (باللغة الألمانية). 12 ديسمبر 2021.
- ↑ «بيان من وزير الدفاع الوطني بشأن ثغرة أباتشي ودعوة للمنظمات الكندية لاتخاذ إجراءات عاجلة» . حكومة كندا . ١٢ ديسمبر ٢٠٢١. مؤرشف من الأصل في ٢٠ ديسمبر ٢٠٢١. تم الاطلاع عليه في ١٢ ديسمبر ٢٠٢١ .
- ↑ "LOG4J2-3198: لم يعد Log4j2 يقوم بتنسيق عمليات البحث في الرسائل افتراضيًا" . GitHub . 5 ديسمبر 2021.
- ↑ "تقييد الوصول إلى LDAP عبر JNDI بواسطة rgoers · طلب سحب رقم 608 · apache/logging-log4j2" . GitHub .30 نوفمبر - 5 ديسمبر 2021
- ↑ "ثغرات أمنية في Apache Log4j" . 6 ديسمبر 2021.
- ↑ "LOG4J2-3208: تعطيل JNDI افتراضيًا" . 11 ديسمبر 2021. تم الاطلاع عليه في 14 ديسمبر 2021 .
- ↑ "LOG4J2-3211: إزالة دعم عمليات البحث في الرسائل" . 13 ديسمبر 2021. تم الاطلاع عليه في 14 ديسمبر 2021 .
للمزيد من القراءة
روابط خارجية
- مؤسسة برمجيات أباتشي
- برنامج مجاني مكتوب بلغة جافا
- تنسيقات ملفات السجل
- برنامج يستخدم ترخيص أباتشي
