Log4net هو إصدار .net من Apache log4j، وهو عبارة عن مجموعة من محركات سجل تكوين XML. في الآونة الأخيرة، كان هناك برنامج يتطلب نظام سجل، لتسهيل التكامل، قررت دراسته. شكرًا لـ Hao Wei على التوصية.
ينقسم نظام log4net إلى 7 مستويات سجل إذا تم ضبطه على "تحذير"، فلن يتم تسجيل التصحيح والمعلومات. كما يلي:
1. الكل
2. تصحيح
3. معلومات
4. تحذير
5. خطأ
6. فادح
7. إيقاف
إنشاء التطبيق النموذجي
الخطوة 1: قم بتنزيل log4net
وانتقل إلى logging.apache.org/log4net للحصول على أحدث إصدار، في المثال الذي استخدمته incubating-log4net-1.2.9-beta.zip، أتطلع إلى الإصدار الرسمي.
الخطوة 2: إنشاء تطبيق ويب ASP.NET
لن أخوض في تفاصيل حول إنشاء هذا، كما هو موضح في log4net-1.2.0-beta8binnet. ابحث عن ملف dll المقابل وأضفه إلى المرجع. لا تحتوي بعض الإصدارات على ملف dll مترجم، لذا قم بتجميعه بنفسك واستخدم إصدار .NET V1.0 لتحويله إلى 1.1 أو 2.0. أعتقد أن هذا ليس خطأ عمل، ولكنه مقصود. كثير من الأشخاص الذين اعتادوا على لعب Java يشبهون هذا.
تكوين تطبيق العينة
الخطوة 3: إضافة معلومات التجميع
افتح ملف AssemblyInfo.cs وأضف:
[التجميع: log4net.Config.DOMConfigurator()]
تعني هذه الجملة أن نظام log4net سيبحث تلقائيًا عن ملف التكوين Web.config للحصول على معلومات التكوين وتحميلها. إذا كنت تريد أن يقوم log4net بمراقبة ملف التكوين في أي وقت لإعادة التحميل، فسيكون الأمر أكثر إزعاجًا بعض الشيء، وتحتاج إلى الكتابة على النحو التالي:
[assembly:log4net.Config.DOMConfigurator(ConfigFile="filename",ConfigFileExtension="log4net",Watch=true)]
الخطوة 4: لإضافة معلومات التكوين
، تحتاج إلى تعديل ملف Web.config، وأنا متفاجئ حقًا في كل مرة أرى ذلك. ابحث عن علامة التكوين، واكتب أقسام التكوين أسفلها مباشرة (دون النظر إلى الآخرين على الإطلاق، ماذا لو كان شخص ما متسلطًا مثله؟ ثم اكتب فقط ملف تكوين السجل الخاص به! أعتقد أن APACHE هو مثل هذا التفكير). ألق نظرة على مثال:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net"
type="log4net.Config.Log4NetConfigurationSectionHandler, log4net-net-1.0"
/>
</configSections >
<!-- يحتوي هذا القسم على إعدادات تكوين log4net -->
<log4net>
<!-- تحديد بعض مُلحقات الإخراج -->
<appender name="ConsoleAppender" type="log4net.Appender.ConsoleAppender">
<layout type=" log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] <%X{auth}> - %m%n" />
< /layout>
</appender>
<!-- يعتني RollingFileAppender بتمرير الملفات حسب الحجم أو التاريخ -->
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<param name="File" value= "C:\log\RollingLogHelloWorld.log" />
<param name = "AppendToFile" value = "true" />
<param name = "MaxSizeRollBackups" value = "10" />
<param name = "MaximumFileSize" القيمة ="1000" />
<param name = "RollingStyle" value = "الحجم" />
<param name = "StaticLogFileName" value = "true" />
<layout type = "log4net.Layout.PatternLayout">
<param name= "ConversionPattern" value="%d [%t] %-5p %-45c [%x] - %m%n" />
</layout>
</appender>
<!-- يُلحق FileAppender بسجل وهو كذلك تتم إدارتها أو حجمها يدويًا -->
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<param name="File" value="LogHelloWorld.log" />
<!-- مثال لاستخدام متغيرات البيئة في المعلمات -->
<!-- <param name="File" value="${TMP}\ApplicationKit.log" /> -->
<param name="AppendToFile" value="true" />
<layout type= "log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c [%x] - %m%n" />
</layout>
</appender>
< !-- قم بإعداد الفئة الجذرية وأضف المُلحقين وعيّن المستوى الافتراضي -->
<root>
<level value="INFO" />
<appender-ref ref="ConsoleAppender" />
</root>
<!-- فئة ApplicationKit - واجهة مستخدم العرض التقديمي -->
<logger name="WebForm1">
<level value="INFO" />
<appender-ref ref="FileAppender" />
</logger>
</log4net>
</configuration>
لاحظ أنه تم تعيين سمة NAME لعقدة المسجل على WebForm1، والتي تشير إلى اسم الفئة. أضف مثل هذه العقدة إلى كل فئة تحتاج إلى إضافة LOG. أعتقد أن سير عمل OSWORKFLOW لا يمكن تحقيقه في كثير من الأحيان في نفس الوقت. المستوى هنا هو INFO، أي أنه لن يتم تسجيل أي شيء أقل من INFO.
تشغيل التطبيق النموذجي
الخطوة 5: لإضافة فئة سجل،
قم أولاً بإضافة مرجع
باستخدام log4net؛ باستخدام log4net.Config؛ .GetLogger("WebForm1");
الخطوة 6: استخدام كائن السجل
الآن، تم الانتهاء من جميع أعمال التكوين، والخطوة التالية هي اختباره وتوصيله بطبقة التطبيق. ما عليك سوى إضافة زر في حدث الاستجابة Button1_Click لمعالج الأحداث.
log.Info("مرحبًا بالعالم، أنا مسجل");
الخطوة 7: قم بتشغيل التطبيق
الآن يمكن تشغيله بالشكل التالي:
في كل مرة تنقر فيها على الزر،2006-02-13 10:12:30,671 [1228] INFO WebForm1 [] -
سيظهر الترحيب في ملف التاريخ. العالم
، وأنا مسجل مثل هذا السجل.
ملخص:
إنه بسيط وسهل الاستخدام، فلندرس سجل SQL بعد فترة، وهو الأفضل.
لمزيد من المعلومات راجع http://logging.apache.org/log4net/