Megosztás a következőn keresztül:


Útmutató: A My.Application.Log kimenet szűrése (Visual Basic)

Ez az útmutató bemutatja, hogyan módosíthatja az objektum alapértelmezett naplószűrését My.Application.Log , hogyan szabályozhatja, hogy az Log objektum milyen információkat ad át a figyelőknek, és milyen információkat írnak a figyelők. A naplózási viselkedést az alkalmazás létrehozása után is módosíthatja, mivel a konfigurációs adatokat az alkalmazás konfigurációs fájljában tárolja a rendszer.

Első lépések

Minden üzenethez, amit My.Application.Log ír, tartozik egy súlyossági szint, amelyet a szűrési mechanizmusok a naplókimenet szabályozására használnak. Ez a mintaalkalmazás metódusokkal My.Application.Log több különböző súlyossági szinttel rendelkező naplóüzenetet ír.

A mintaalkalmazás létrehozása

  1. Nyisson meg egy új Visual Basic Windows-alkalmazásprojektet.

  2. Gomb1 nevű gomb hozzáadása a Form1-hez.

  3. Click A Button1 eseménykezelőjében adja hozzá a következő kódot:

    ' 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. Futtassa az alkalmazást a hibakeresőben.

  5. Nyomja le a Button1 billentyűt.

    Az alkalmazás a következő adatokat írja az alkalmazás hibakeresési kimenetére és naplófájljába.

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. Zárja be az alkalmazást.

    Az alkalmazás hibakeresési kimeneti ablakának megtekintéséről további információt a Kimeneti ablak című témakörben talál. Az alkalmazás naplófájljának helyével kapcsolatos információkért lásd a Walkthrough: Hol írja a My.Application.Log az információkat .

    Megjegyzés:

    Alapértelmezés szerint az alkalmazás az alkalmazás bezárásakor kiüríti a naplófájl kimenetét.

    A fenti példában a metódus második hívása WriteEntry és a metódus hívása WriteException naplókimenetet hoz létre, míg a metódus első és utolsó hívása WriteEntry nem. Ennek az az oka, hogy a WriteEntry és WriteException súlyossági szintjei "Információ" és "Hiba", amelyek mindkettő engedélyezett a My.Application.Log objektum alapértelmezett naplószűrésében. A "Start" és a "Stop" súlyossági szinttel rendelkező események azonban nem képesek naplókimenetet generálni.

Szűrés minden My.Application.Log figyelő számára

Az My.Application.Log objektum egy SourceSwitch nevű DefaultSwitch-t használ annak szabályozására, hogy mely üzeneteket ad át a WriteEntry és WriteException metódusokból a naplófigyelőknek. Az alkalmazás konfigurációs fájljában úgy konfigurálhatja DefaultSwitch , hogy az értékét az SourceLevels enumerálási értékek egyikére állítja. Alapértelmezés szerint az értéke "Információ".

Ez a táblázat azt a súlyossági szintet mutatja, amely szükséges ahhoz, hogy a Log üzenetet írjon a hallgatóknak egy adott DefaultSwitch beállítás esetén.

DefaultSwitch érték A kimenethez szükséges üzenet súlyossága
Critical Critical
Error Critical vagy Error
Warning Critical, Error vagy Warning
Information Critical, Error, Warningvagy Information
Verbose Critical, Error, Warning, Informationvagy Verbose
ActivityTracing Start, Stop, Suspend, Resumevagy Transfer
All Minden üzenet engedélyezett.
Off Minden üzenet le van tiltva.

Megjegyzés:

A WriteEntry és WriteException metódusoknak mindegyike rendelkezik egy túlterheléssel, amely nem határoz meg súlyossági szintet. A túlterhelés implicit súlyossági szintje WriteEntry "Információ", a túlterhelés implicit súlyossági szintje WriteException pedig "Hiba".

Ez a táblázat az előző példában látható naplókimenetet ismerteti: az "Információ" alapértelmezett DefaultSwitch beállításával csak a metódus második hívása WriteEntry és a metódus hívása WriteException hoz létre naplókimenetet.

Csak tevékenységkövetési események naplózása

  1. Kattintson a jobb gombbal a app.config a Megoldáskezelőben , és válassza a Megnyitás lehetőséget.

    -vagy-

    Ha nincs app.config fájl:

    1. A Projekt menüben válassza az Új elem hozzáadása lehetőséget.

    2. Az Új elem hozzáadása párbeszédpanelen válassza az Alkalmazáskonfigurációs fájl lehetőséget.

    3. Kattintson a Hozzáadás gombra.

  2. Keresse meg a <switches> szakaszt, amely a <system.diagnostics> szakaszban található, amely a felső szintű <configuration> szakaszban található.

  3. Keresse meg azt az elemet, amely DefaultSwitch-t ad hozzá a kapcsolók gyűjteményéhez. Ennek az elemhez hasonlóan kell kinéznie:

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

  4. Módosítsa az value attribútum értékét "ActivityTracing" értékre.

  5. A app.config fájl tartalmának az alábbi XML-fájlhoz hasonlónak kell lennie:

    <?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. Futtassa az alkalmazást a hibakeresőben.

  7. Nyomja le a Button1 billentyűt.

    Az alkalmazás a következő adatokat írja az alkalmazás hibakeresési kimenetére és naplófájljába:

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Zárja be az alkalmazást.

  9. Módosítsa az attribútum értékét "Információ" értékre value .

    Megjegyzés:

    A DefaultSwitch kapcsolóbeállítás csak My.Application.Log vezérlését irányítja. Ez nem változtatja meg a .NET System.Diagnostics.Trace és System.Diagnostics.Debug az osztályok viselkedését.

Egyéni szűrés a My.Application.Log-figyelőkhöz

Az előző példa bemutatja, hogyan módosíthatja az összes My.Application.Log kimenet szűrését. Ez a példa bemutatja, hogyan szűrhet egy adott naplófigyelőt. Alapértelmezés szerint egy alkalmazás két figyelővel rendelkezik, amelyek az alkalmazás hibakeresési kimenetére és a naplófájlra írnak.

A konfigurációs fájl vezérli a naplófigyelők viselkedését oly módon, hogy mindegyik számára lehetővé teszi a szűrő alkalmazását, amely hasonló a kapcsolóhoz My.Application.Log. A naplófigyelő csak akkor ad ki üzenetet, ha a napló és a naplófigyelő szűrője DefaultSwitch is engedélyezi az üzenet súlyosságát.

Ez a példa bemutatja, hogyan konfigurálhatja a szűrést egy új hibakeresési figyelőhöz, és hogyan adhat hozzá az Log objektumhoz. Az alapértelmezett hibakeresési figyelőt el kell távolítani az Log objektumból, így egyértelmű, hogy a hibakeresési üzenetek az új hibakeresési figyelőből származnak.

Csak tevékenységkövetési események naplózása

  1. Kattintson a jobb gombbal a app.config a Megoldáskezelőben , és válassza a Megnyitás parancsot.

    -vagy-

    Ha nincs app.config fájl:

    1. A Projekt menüben válassza az Új elem hozzáadása lehetőséget.

    2. Az Új elem hozzáadása párbeszédpanelen válassza az Alkalmazáskonfigurációs fájl lehetőséget.

    3. Kattintson a Hozzáadás gombra.

  2. Kattintson a jobb gombbal a app.config a Megoldáskezelőben. Válassza a Megnyitás lehetőséget.

  3. Keresse meg a <listeners> szakaszt a <source> szakaszban, amely a name szakasz alatt található és a <sources> attribútuma "DefaultSource". A <sources> szakasz a <system.diagnostics> felső szintű <configuration> szakasz alatt található.

  4. Adja hozzá ezt az elemet a <listeners> szakaszhoz:

    <!-- Remove the default debug listener. -->
    <remove name="Default"/>
    <!-- Add a filterable debug listener. -->
    <add name="NewDefault"/>
    
  5. Keresse meg a <sharedListeners> szakaszt a <system.diagnostics> felső szintű <configuration> szakaszban.

  6. Adja hozzá ezt az elemet a szakaszhoz <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>
    

    A EventTypeFilter szűrő attribútumként az SourceLevels enumerálási értékek egyikét initializeData veszi fel.

  7. A app.config fájl tartalmának az alábbi XML-fájlhoz hasonlónak kell lennie:

    <?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. Futtassa az alkalmazást a hibakeresőben.

  9. Nyomja le a Button1 billentyűt.

    Az alkalmazás a következő adatokat írja az alkalmazás naplófájljába:

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    Az alkalmazás kevesebb információt ír az alkalmazás hibakeresési kimenetére a szigorúbb szűrés miatt.

    Default Error 2 Error

  10. Zárja be az alkalmazást.

A naplóbeállítások üzembe helyezés utáni módosításáról további információt az Alkalmazásnaplók használata című témakörben talál.

Lásd még