الإرشادات التفصيلية: تصفية إخراج My.Application.Log
توضح هذه المعاينة كيفية تغيير تصفية السجل الافتراضية لكائن My.Application.Log للتحكم بأي من المعلومات يتم تمريرها من كائن Log إلى listeners و أي من المعلومات تتم كتابته من قبل listeners. و يمكنك تغيير سلوك التسجيل حتى بعد إنشاء التطبيق، لأنه يتم تخزين معلومات التكوين في ملف التكوين للتطبيق.
الشروع في العمل
كل رسالة My.Application.Log تكتب تحتوي على مستوى خطورة مقترن و التي تستخدمها آليات التصفية للتحكم بإخراج السجل. و يستخدم هذا التطبيق أساليب My.Application.Log لكتابة العديد من رسائل السجل ذات مستويات الخطورة المختلفة.
لبناء نموذج التطبيق
افتح نافذة Visual Basic جديدة لمشروع التطبيق .
أضف زر يسمى Button1 إلى Form1.
في معالج الأحداث Click لـ Button1 ، أضف التعليمات البرمجية التالية :
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
قم بتشغيل التطبيق في المصحح.
اضغطButton1.
و يكتب التطبيق المعلومات التالية لمخرج ملف السجل و التصحيح الخاص بالتطبيق .
DefaultSource Information: 0 : In Button1_Click
DefaultSource Error: 2 : Error in the application.
اغلق التطبيق.
و للحصول على معلومات حول كيفية عرض نافذة إخراج مصحح التطبيق ، راجع إطار الإخراج. و للحصول على معلومات عن موقع ملف سجل التطبيق ، راجع الإرشادات التفصيلية: تحديد أين يكتب My.Application.Log المعلومات.
ملاحظة
بشكل افتراضي، يمسح التطبيق إخراج ملف السجل عند إغلاق التطبيق.
و في المثال أعلاه، الاستدعاء الثاني لأسلوب WriteEntry و الاستدعاء أسلوب WriteException ينتج إخراج السجل في حين أن الاستدعاء الأول و الأخير لأسلوب WriteEntry لا ينتج. و يرجع السبب في ذلك إلى مستويات خطورة WriteEntry و WriteException هي "المعلومات" و "الخطأ" ، و كل منهما مسموح بواسطة تصفية السجل الافتراضي للكائن My.Application.Log . و مع ذلك، لن تتمكن الأحداث مع مستويات الخطورة "ابدأ" و "إيقاف" من إنتاج سجل الإخراج.
التصفية لكل My.Application.Log Listeners
كائن My.Application.Log يستخدم SourceSwitch المسمى DefaultSwitch للتحكم بأيٍ من الرسائل سيُمرر من أساليب WriteEntry و WriteException إلى وحدة إصغاء (listeners) السجل . و يمكنك تكوين DefaultSwitch في ملف التكوين للتطبيق عن طريق إعداد قيمته إلى إحدى قيم التعداد SourceLevels . و بشكل افتراضي القيمة الخاصة به هي "المعلومات".
يُظهر هذا الجدول مستوى الخطورة المطلوب من أجل أن يكتب السجل رسالة إلى listeners و إعطاء إعداد DefaultSwitch المعين .
قيمة DefaultSwitch |
خطورة الرسالة المطلوبة للإخراج |
---|---|
Critical |
Critical |
Error |
Critical أو Error |
Warning |
Critical, Error, أو Warning. |
Information |
Critical أو Error أو Warning أو Information |
Verbose |
Critical أو Error أو Warning أو Information أو Verbose |
ActivityTracing |
Start أو Stop أو Suspend أو Resume أو Transfer |
All |
كافة الرسائل مسموح بها. |
Off |
كافة الرسائل محظورة. |
ملاحظة
أساليب WriteEntry و WriteException تحتوي التحميل الزائد الذي لا يحدد مستوى الخطورة. مستوى الخطورة الضمني للتحميل الزائد WriteEntry هو "المعلومات" و مستوى الخطورة الضمني للتحميل الزائد WriteException هو "خطأ".
يوضح هذا الجدول إخراج السجل المبين في المثال السابق: مع الإعداد الافتراضي DefaultSwitch "للمعلومات" ، الاستدعاء الثاني فقط لأسلوب WriteEntry و الاستدعاء لأسلوب WriteException ينتج إخراج السجل .
لتسجيل أحداث التتبع النشطة
انقر على اليمين app.config في مستكشف الحلول ثم حدد فتح.
-أو-
إذا لم يكن هناك ملف app.config:
في القائمة المشروع اختر إضافة عنصر جديد .
من مربع حوار إضافة عنصر جديد ، اختر ملف تكوين التطبيق.
انقر فوق إضافة.
حدد موقع مقطع <switches>الموجود في مقطع <system.diagnostics> الموجود في المستوى الأعلى لمقطع <configuration> .
العثور على عنصر يضيف DefaultSwitch إلى مجموعة من رموز التبديل. يجب أن تبدو مشابهة إلى هذا العنصر:
<add name="DefaultSwitch" value="Information" />
تغيير قيمة سمة value لـ "ActivityTracing" .
يجب أن يكون محتوى ملف app.config مماثل لـ XML التالية:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="ActivityTracing" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> </sharedListeners> </system.diagnostics> </configuration>
قم بتشغيل التطبيق في المصحح.
اضغطButton1.
و يكتب التطبيق المعلومات التالية لمخرج ملف السجل و التصحيح الخاص بالتطبيق :
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
اغلق التطبيق.
غير قيمة سمة value رجوعاً إلى "المعلومات" .
ملاحظة
DefaultSwitch يبدل بين عناصر تحكم الإعداد فقط My.Application.Log. و لا يغير كيفية تصرف فئات .NET Framework و System.Diagnostics.Trace و System.Diagnostics.Debug .
التصفية المفردة لـ My.Application.Log Listeners
و يوضح المثال السابق كيفية تغيير التصفية لكل إخراج My.Application.Log . و يوضح هذا المثال كيفية تصفية وحدة إصغاء (listener) السجل الفردية. بشكل افتراضي يحتوي التطبيق على اثنين من listeners اللذان يكتبان إخراج التصحيح الخاص بالتطبيق و ملف السجل.
و يتحكم ملف التكوين بسلوك سجل listeners عن طريق السماح لكل بامتلاك عامل تصفية و الذي يشبه مفتاح التبديل الخاص بـ My.Application.Log. و ستقوم وحدة إصغاء (listener) السجل بإخراج رسالة فقط إذا كان مسموح بخطورة الرسالة عن طريق كلاً من DefaultSwitch للسجل و عامل تصفية وحدة الإصغاء (listener) للسجل.
و يوضح هذا المثال كيفية تكوين عامل تصفية لوحدة إصغاء التصحيح الجديدة و إضافتها إلى كائن Log . و يجب إزالة وحدة إصغاء التصحيح الافتراضية من كائن Log بحيث يصبح واضحاً أن رسائل التصحيح تأتي من وحدة إصغاء تصحيح جديدة .
لتسجيل أحداث التتبع النشطة
انقر بالزر الأيمن فوق app.config في مستكشف الحلول ثم قم باختيار فتح.
-أو-
إذا لم يكن هناك ملف app.config:
في القائمة المشروع اختر إضافة عنصر جديد .
من مربع حوار إضافة عنصر جديد ، اختر ملف تكوين التطبيق.
انقر فوق إضافة.
انقر على اليمين app.config في مستكشف الحلول. اختر فتح.
بحث في مقطع <listeners> في مقطع <source> مع سمة nameDefaultSource" الموجودة تحت مقطع <sources> . مقطع <sources> موجود تحت مقطع <system.diagnostics> في المستوى الأعلى لمقطع <configuration> .
أضف هذا العنصر إلى مقطع <listeners> :
<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>
بحث في مقطع <sharedListeners> في مقطع <system.diagnostics> في مقطع المستوى الأعلى <configuration> .
أضف هذا العنصر إلى ذلك المقطع <sharedListeners> :
<add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add>
عامل التصفية EventTypeFilter يأخذ أحد قيم التعداد SourceLevels كسمة initializeData الخاصة به .
يجب أن يكون محتوى ملف app.config مماثل لـ XML التالية:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add> </sharedListeners> </system.diagnostics> </configuration>
قم بتشغيل التطبيق في المصحح.
اضغطButton1.
يكتب التطبيق المعلومات التالية إلى ملف السجل للتطبيق:
Default Information: 0 : In Button1_Click
Default Error: 2 : Error in the application.
يكتب التطبيق معلومات أقل إلى إخراج تصحيح التطبيق لوجود تصفية أكثر تقييداً.
Default Error 2 Error
اغلق التطبيق.
و لمزيد من المعلومات حول تغيير إعدادات السجل بعد التوزيع ، راجع العمل مع سجلات التطبيق في Visual Basic.
راجع أيضًا:
المهام
الإرشادات التفصيلية: تحديد أين يكتب My.Application.Log المعلومات
الإرشادات التفصيلية: تغيير مكان كتابة My.Application.Log المعلومات
الإرشادات التفصيلية: إنشاء سجل إصغاء مخصص
كيفية القيام بما يلي: كتابة رسائل السجل