كيفية استخدام Log4j في Selenium?
⚡ ملخص ذكي
سجل 4j في Selenium هو سريع ومرن Java إطار عمل لتسجيل البيانات يسجل تفاصيل تدفق البرامج النصية للأتمتة. يدعم مستويات تسجيل متعددة، وملحقات، وتنسيقات، ويتكامل بشكل جيد مع LogExpert لتحليل ملفات السجل المُنشأة.

ما هو Log4j في Selenium?
Log4j هو إطار عمل تسجيل سريع ومرن وموثوق (API) مكتوب بلغة Java وتم تطويره في أوائل عام 1996. ويتم توزيعه بموجب Apache رخصة البرمجيات. تم نقل Log4j إلى لغة C. C++، C #، بيرل, Pythonلغات البرمجة روبي وإيفل. وهي أداة تُستخدم في المشاريع الصغيرة والكبيرة على حد سواء. Selenium مشاريع الأتمتة.
لماذا استخدام Log4j؟
يوفر Log4j العديد من المزايا العملية لـ Selenium المشاريع:
- إنه مفتوح المصدر.
- باستخدام Log4j، من الممكن تخزين تفاصيل تدفق Selenium التشغيل الآلي في ملف أو قاعدة بيانات.
- يعمل Log4j مع المشاريع الكبيرة والصغيرة على حد سواء.
- في Log4j، تحل عبارات السجل محل عبارات System.out.println في الكود لمعرفة حالة المشروع أثناء تنفيذه.
مكونات Log4j
الحطابين
يتولى برنامج التسجيل مسؤولية تسجيل المعلومات. ولتطبيق برامج التسجيل في مشروع ما، يجب اتباع الخطوات التالية.
أنشئ نسخة من فئة Logger
فئة Logger هي Javaأداة مساعدة قائمة على Log4j تحتوي على جميع الطرق العامة المطبقة بالفعل لاستخدام Log4j.
تحديد مستوى Log4j
توجد في الأساس سبعة أنواع من مستويات التسجيل:
- الكل – يسجل هذا المستوى من التسجيل كل شيء (يقوم بتشغيل جميع السجلات).
- DEBUG – يطبع معلومات تصحيح الأخطاء وهو مفيد في مرحلة التطوير.
- معلومات – تطبع رسائل إعلامية تسلط الضوء على تقدم التطبيق.
- تحذير - يطبع معلومات تتعلق بسلوك النظام المعيب وغير المتوقع.
- خطأ – يطبع رسائل الخطأ التي قد تسمح للنظام بالاستمرار.
- خطأ فادح – يطبع معلومات بالغة الأهمية للنظام مما يتسبب في تعطل التطبيق.
- إيقاف – لا يتم تسجيل البيانات.
المُلحقون
يُستخدم المُلحق (Appender) لإيصال أحداث السجل (LogEvents) إلى وجهتها. وهو يُحدد كيفية التعامل مع معلومات السجل. بعبارة أخرى، يقوم بكتابة السجلات في ملف. فيما يلي بعض أنواع المُلحقات:
- يقوم ConsoleAppender بتسجيل البيانات في المخرجات القياسية.
- يقوم برنامج FileAppender بطباعة السجلات إلى ملف محدد.
- يقوم RollingFileAppender بالكتابة إلى ملف بحجم أقصى.
ملاحظة: في ملف log4j.properties، يمكن استدعاء المُلحق بأي اسم. توجد ملحقات أخرى أيضًا، لكن التركيز هنا ينصب على هذه الملحقات القليلة.
تخطيطات
تتولى وظيفة التخطيط مسؤولية تنسيق معلومات التسجيل بأنماط مختلفة.
توفر فئة Logger طرقًا مختلفة للتعامل مع أنشطة التسجيل. كما توفر طريقتين ثابتتين للحصول على كائن Logger.
public static Logger getRootLogger()
public static Logger getLogger(String name)
كيف يتم تكوين Log4j؟
لتكوين Log4j، حدد الملحق الذي ترغب في استخدامه. يتم ضبط معلمات الملحق وفقًا لذلك.
- استخدم مستوى DEBUG و RollingFileAppender.
- يتم إنشاء تكوينين أو سجلين:
- أولاً: مسجل الجذر، الذي يكتب جميع السجلات التي أنشأها النظام في ملف باسم Selenium.logs.
- ثانيًا: مسجل التطبيقات، الذي يكتب المعلومات التي تم إنشاؤها بواسطة الأوامر اليدوية في التعليمات البرمجية في الملف المسمى Manual.logs.
- التصميم المستخدم هو PatternLayout.
# مسجل الجذر
log4j.rootLogger=DEBUG,file
log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=D:\\Guru99\\src\\Selenium.logs
log4j.appender.file.maxFileSize=900KB
log4j.appender.file.maxBackupIndex=5
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%d{ABSOLUTE} %5p %c{1}:%L - %m%n
log4j.appender.file.Append=false
#سجلات التطبيق
log4j.logger.devpinoyLogger=DEBUG, dest1
log4j.appender.dest1=org.apache.log4j.RollingFileAppender
log4j.appender.dest1.maxFileSize=900KB
log4j.appender.dest1.maxBackupIndex=6
log4j.appender.dest1.layout=org.apache.log4j.PatternLayout
log4j.appender.dest1.layout.ConversionPattern=%d{dd/MM/yyyy HH:mm:ss} %c %m%n
log4j.appender.dest1.File=D:\\Guru99\\src\\Manual.logs
log4j.appender.dest1.Append=false
في المثال أعلاه، تم تكوين Log4j لتسجيل البيانات في ملفين مختلفين باسم Selenium.log و Manual.log.
- الملف و dest1 هما المعرفان.
- يُستخدم "الملف" لتحديد اسم الملف الذي يتم فيه حفظ السجلات.
- يُستخدم خيار "maxFileSize" لتحديد الحد الأقصى لحجم ملف السجل. عندما يصل الملف إلى هذا الحجم، يتم إنشاء ملف جديد بنفس الاسم، ويُضاف لاحقة فهرس إلى اسم الملف القديم.
- يُستخدم "maxBackupIndex" لتكوين الحد الأقصى لعدد الملفات المراد نسخها احتياطيًا.
- يتم استخدام "التخطيط" لتعيين تنسيق ملف السجل.
- يُستخدم خيار "الإلحاق" لضبط وظيفة الإلحاق. عند ضبطه على "خطأ"، يتم إنشاء ملف جديد في كل مرة بدلاً من إعادة استخدام الملف القديم للتسجيل.
كيف يتم استخدام Log4j داخل البرنامج النصي؟
في الكود، يتم استخدام "log" كمتغير مرجعي يشير إلى طريقة getLogger الخاصة بفئة Logger.
Logger log = Logger.getLogger("devpinoyLogger");
استخدم متغير المرجع "log" وطريقة التصحيح لتسجيل المعلومات المطلوبة.
log.debug("--information--");
ما هي أداة LogExpert؟
LogExpert هي أداة تتميز بالخصائص التالية:
- LogExpert هو Windows أداة تم تطويرها لتتبع السجلات.
- هو برنامج مجاني ومفتوح المصدر لعرض السجلات.
- إنها أداة لتحليل السجلات تتضمن ميزات متعددة مثل البحث والتصفية ووضع الإشارات المرجعية وتظليل السجلات.
- يتم تحديث ملفات السجل تلقائيًا عند فتحها في هذه الأداة.
- يمكن فتح ملفات سجلات متعددة في علامات تبويب مختلفة.
- يمكن إضافة التعليقات إلى الإشارات المرجعية، كما يتيح مفتاح اختصار التنقل بين الإشارات المرجعية المختلفة. وتتوفر قائمة كاملة بالإشارات المرجعية لتسهيل التنقل.
- تم توفير اختصارات الأداة في ملف المساعدة بحيث يمكن الرجوع إليها عند الحاجة.
كيفية استخدام Log4j في Selenium
الخطوة 1) In Eclipse، قم بإنشاء مشروع جديد باسم log4j_demo.
الخطوة 2) انقر بزر الماوس الأيمن على src -> مسار الإنشاء -> تكوين مسار الإنشاء.
الخطوة 3) انقر على "المكتبات" وأضف مكتبة Log4j. يمكنك تنزيلها من https://logging.apache.org/log4j/1.2/download.html.
الخطوة 4) أنشئ ملفًا جديدًا. يحتوي هذا الملف على جميع إعدادات Log4j.
- انقر بزر الماوس الأيمن على src -> جديد -> أخرى -> عام -> ملف.
- قم بتسمية الملف باسم "log4j.properties".
- انقر فوق "إنهاء".
أنشئ ملفين إضافيين وقم بتسميتهما Seleniumملفات .logs و Manual.logs. تحتوي هذه الملفات على جميع السجلات التي أنشأها النظام والبيانات المسجلة يدويًا.
الخطوة 5) في ملف log4j.properties، انسخ التكوين بالكامل.
الخطوة 6) أنشئ الفئة الرئيسية:
- انقر بزر الماوس الأيمن على الحزمة الافتراضية -> جديد -> فئة.
- قم بتسمية الفصل وانقر فوق "إنهاء".
الخطوة 7) انسخ الكود التالي إلى الفئة الرئيسية.
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.apache.log4j.Logger;
public class LoggingDemo {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
WebDriver driver = new FirefoxDriver();
Logger log = Logger.getLogger("devpinoyLogger");
driver.get("https://healthunify.com/bmicalculator/");
log.debug("opening website");
driver.manage().timeouts().implicitlyWait(20, TimeUnit.SECONDS);
log.debug("entering weight");
driver.findElement(By.name("wg")).sendKeys("87");
log.debug("selecting kilograms");
driver.findElement(By.name("opt1")).sendKeys("kilograms");
log.debug("selecting height in feet");
driver.findElement(By.name("opt2")).sendKeys("5");
log.debug("selecting height in inches");
driver.findElement(By.name("opt3")).sendKeys("10");
log.debug("clicking on calculate");
driver.findElement(By.name("cc")).click();
log.debug("getting SIUnit value");
String SIUnit = driver.findElement(By.name("si")).getAttribute("value");
log.debug("getting USUnit value");
String USUnit = driver.findElement(By.name("us")).getAttribute("value");
log.debug("getting UKUnit value");
String UKUnit = driver.findElement(By.name("uk")).getAttribute("value");
log.debug("getting overall description");
String note = driver.findElement(By.name("desc")).getAttribute("value");
System.out.println("SIUnit = " + SIUnit);
System.out.println("USUnit = " + USUnit);
System.out.println("UKUnit = " + UKUnit);
System.out.println("note = " + note);
driver.quit();
}
}
في الكود أعلاه، يقوم البرنامج النصي بزيارة https://healthunify.com/bmicalculator/ ويتحقق البرنامج من صحة مؤشر كتلة الجسم. الوزن المُدخل هو 87 كيلوغرامًا والطول 178 سنتيمترًا. يتحقق البرنامج من النتائج بوحدات النظام الدولي للوحدات (SI) والوحدات الأمريكية والبريطانية.
باستخدام Logger.getLogger(“devpinoyLogger”)، يقوم البرنامج النصي بإنشاء سجلات على مستوى النظام. وباستخدام طريقة log.debug، يتم تخزين البيانات في ملف Manual.log.
الخطوة 8) قم بتشغيل البرنامج النصي. افتح موقع الدليل و Selenium سجلات للتحقق من بيانات التسجيل.
كيف يمكن استخدام أداة LogExpert لتحليل السجلات
- قم بتنزيل الأداة من https://github.com/zarunbal/LogExpertانتقل إلى مجلد تنزيل LogExpert.
- افتح برنامج LogExpert.exe.
- انقر على ملف -> فتح، ثم استعرض المسار الذي يوجد فيه ملف Manual.log و Seleniumيتم تخزين ملفات .log. حدد الملف.
- حدد خيار "متابعة الذيل".
يُمكّنك تحديد خيار "متابعة السجل" من تتبع سجلات النظام، ما يعني أن LogExpert يقوم بتحديث ملف السجل تلقائيًا أثناء تنفيذ البرنامج النصي. في أي محرر نصوص آخر مثل المفكرة، يجب إغلاق الملف وإعادة فتحه مرارًا وتكرارًا لتحديث السجلات. أما مع LogExpert في وضع "متابعة السجل"، فلا حاجة لذلك.
تُظهر الصور التالية تخطيط السجلات.
باستخدام LogExpert، يتم إنشاء السجلات بواسطة Selenium يمكن تصحيح أخطاء WebDriver. في هذه الأداة، يمكن للمرء:
- ابحث عن أي نص وتعبير نمطي.
- قم بإنشاء إشارات مرجعية والتعليق عليها، وكذلك التنقل بين الإشارات المرجعية، وهو أمر غير ممكن في أي أداة أخرى.
- قم بتصفية السجلات، وابحث عن نطاقات النصوص، ثم قم بتطبيق عامل تصفية آخر على السجلات التي تمت تصفيتها مسبقًا.
- قم بتمييز الأسطر المختلفة بناءً على كلمات معينة.
تساعد هذه الأداة أيضًا على تقسيم البيانات إلى أعمدة مختلفة.











