الإرشادات التفصيلية: تصفية إخراج My.Application.Log

توضح هذه المعاينة كيفية تغيير تصفية السجل الافتراضية لكائن My.Application.Log للتحكم بأي من المعلومات يتم تمريرها من كائن Log إلى listeners و أي من المعلومات تتم كتابته من قبل listeners. و يمكنك تغيير سلوك التسجيل حتى بعد إنشاء التطبيق، لأنه يتم تخزين معلومات التكوين في ملف التكوين للتطبيق.

الشروع في العمل

كل رسالة My.Application.Log تكتب تحتوي على مستوى خطورة مقترن و التي تستخدمها آليات التصفية للتحكم بإخراج السجل. و يستخدم هذا التطبيق أساليب My.Application.Log لكتابة العديد من رسائل السجل ذات مستويات الخطورة المختلفة.

لبناء نموذج التطبيق

  1. افتح نافذة Visual Basic جديدة لمشروع التطبيق .

  2. أضف زر يسمى Button1 إلى Form1.

  3. في معالج الأحداث 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)
    
  4. قم بتشغيل التطبيق في المصحح.

  5. اضغطButton1.

    و يكتب التطبيق المعلومات التالية لمخرج ملف السجل و التصحيح الخاص بالتطبيق .

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. اغلق التطبيق.

و للحصول على معلومات حول كيفية عرض نافذة إخراج مصحح التطبيق ، راجع إطار الإخراج. و للحصول على معلومات عن موقع ملف سجل التطبيق ، راجع الإرشادات التفصيلية: تحديد أين يكتب 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 ينتج إخراج السجل .

لتسجيل أحداث التتبع النشطة

  1. انقر على اليمين app.config في مستكشف الحلول ثم حدد فتح.

    -أو-

    إذا لم يكن هناك ملف app.config:

    1. في القائمة المشروع اختر إضافة عنصر جديد .

    2. من مربع حوار إضافة عنصر جديد ، اختر ملف تكوين التطبيق.

    3. انقر فوق إضافة.

  2. حدد موقع مقطع <switches>الموجود في مقطع <system.diagnostics> الموجود في المستوى الأعلى لمقطع <configuration> .

  3. العثور على عنصر يضيف DefaultSwitch إلى مجموعة من رموز التبديل. يجب أن تبدو مشابهة إلى هذا العنصر:

    <add name="DefaultSwitch" value="Information" />

  4. تغيير قيمة سمة value لـ "ActivityTracing" .

  5. يجب أن يكون محتوى ملف 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>
    
  6. قم بتشغيل التطبيق في المصحح.

  7. اضغطButton1.

    و يكتب التطبيق المعلومات التالية لمخرج ملف السجل و التصحيح الخاص بالتطبيق :

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. اغلق التطبيق.

  9. غير قيمة سمة 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 بحيث يصبح واضحاً أن رسائل التصحيح تأتي من وحدة إصغاء تصحيح جديدة .

لتسجيل أحداث التتبع النشطة

  1. انقر بالزر الأيمن فوق app.config في مستكشف الحلول ثم قم باختيار فتح.

    -أو-

    إذا لم يكن هناك ملف app.config:

    1. في القائمة المشروع اختر إضافة عنصر جديد .

    2. من مربع حوار إضافة عنصر جديد ، اختر ملف تكوين التطبيق.

    3. انقر فوق إضافة.

  2. انقر على اليمين app.config في مستكشف الحلول. اختر فتح.

  3. بحث في مقطع <listeners> في مقطع <source> مع سمة nameDefaultSource" الموجودة تحت مقطع <sources> . مقطع <sources> موجود تحت مقطع <system.diagnostics> في المستوى الأعلى لمقطع <configuration> .

  4. أضف هذا العنصر إلى مقطع <listeners> :

    <!-- Remove the default debug listener. -->
    <remove name="Default"/>
    <!-- Add a filterable debug listener. -->
    <add name="NewDefault"/>
    
  5. بحث في مقطع <sharedListeners> في مقطع <system.diagnostics> في مقطع المستوى الأعلى <configuration> .

  6. أضف هذا العنصر إلى ذلك المقطع <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 الخاصة به .

  7. يجب أن يكون محتوى ملف 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>
    
  8. قم بتشغيل التطبيق في المصحح.

  9. اضغطButton1.

    يكتب التطبيق المعلومات التالية إلى ملف السجل للتطبيق:

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    يكتب التطبيق معلومات أقل إلى إخراج تصحيح التطبيق لوجود تصفية أكثر تقييداً.

    Default Error 2 Error

  10. اغلق التطبيق.

و لمزيد من المعلومات حول تغيير إعدادات السجل بعد التوزيع ، راجع العمل مع سجلات التطبيق في Visual Basic.

راجع أيضًا:

المهام

الإرشادات التفصيلية: تحديد أين يكتب My.Application.Log المعلومات

الإرشادات التفصيلية: تغيير مكان كتابة My.Application.Log المعلومات

الإرشادات التفصيلية: إنشاء سجل إصغاء مخصص

كيفية القيام بما يلي: كتابة رسائل السجل

المبادئ

تبديل تتبع

معلومات التسجيل من التطبيق