Megosztás:


Útmutató: Nyomkövetési kapcsolók létrehozása, inicializálása és konfigurálása

Feljegyzés

Ez a cikk a .NET-keretrendszer vonatkozik. Ez nem vonatkozik a .NET újabb implementációira, beleértve a .NET 6-os és újabb verzióit.

A nyomkövetési kapcsolók lehetővé teszik a nyomkövetési kimenet engedélyezését, letiltását és szűrését.

Nyomkövetési kapcsoló létrehozása és inicializálása

A nyomkövetési kapcsolók használatához először létre kell hoznia őket, és el kell helyeznie őket a kódban. Két előre definiált osztályból hozhat létre kapcsolóobjektumokat: az System.Diagnostics.BooleanSwitch osztályt és az osztályt System.Diagnostics.TraceSwitch . Ha csak a nyomkövetési üzenet megjelenésével foglalkozik, akkor használja BooleanSwitch , ha a nyomkövetési szintek közötti megkülönböztetést szeretné használni TraceSwitch . Ha használ, TraceSwitchdefiniálhatja a saját hibakeresési üzeneteit, és különböző nyomkövetési szintekhez társíthatja őket. Mindkét kapcsolótípust használhatja nyomkövetéssel vagy hibakereséssel. Alapértelmezés szerint az a BooleanSwitch le van tiltva, és TraceSwitch a szintre TraceLevel.Offvan állítva. A nyomkövetési kapcsolók a kód bármely olyan részén létrehozhatók és elhelyezhetők, amelyek használhatják őket.

Bár a kódban megadhat nyomkövetési szinteket és egyéb konfigurációs beállításokat, javasoljuk, hogy a konfigurációs fájl használatával kezelje a kapcsolók állapotát. Ennek az az oka, hogy a kapcsolók konfigurációjának a konfigurációs rendszerben való kezelése nagyobb rugalmasságot biztosít – az alkalmazás újrafordítása nélkül be- és kikapcsolhatja a különböző kapcsolókat és módosíthatja a szinteket.

Nyomkövetési kapcsoló létrehozása és inicializálása

  1. Adjon meg egy kapcsolót típusként System.Diagnostics.BooleanSwitch vagy típusként System.Diagnostics.TraceSwitch , és adja meg a kapcsoló nevét és leírását.

  2. Konfigurálja a nyomkövetési kapcsolót. További információ: Nyomkövetési kapcsolók konfigurálása.

    Az alábbi kód két kapcsolót hoz létre, mindegyik típusból egyet:

    Dim dataSwitch As New BooleanSwitch("Data", "DataAccess module")
    Dim generalSwitch As New TraceSwitch("General", "Entire application")
    
    System.Diagnostics.BooleanSwitch dataSwitch =
       new System.Diagnostics.BooleanSwitch("Data", "DataAccess module");
    System.Diagnostics.TraceSwitch generalSwitch =
       new System.Diagnostics.TraceSwitch("General",
       "Entire application");
    

Nyomkövetési kapcsolók konfigurálása

Az alkalmazás terjesztése után továbbra is engedélyezheti vagy letilthatja a nyomkövetési kimenetet az alkalmazásban lévő nyomkövetési kapcsolók konfigurálásával. A kapcsoló konfigurálása azt jelenti, hogy az inicializálás után egy külső forrásból módosítja az értékét. A konfigurációs fájl használatával módosíthatja a kapcsolóobjektumok értékeit. A nyomkövetési kapcsolót úgy konfigurálhatja, hogy be- és kikapcsolja azt, vagy hogy beállítsa annak szintjét, meghatározva a figyelőknek küldött üzenetek mennyiségét és típusát.

A kapcsolók a .config fájl használatával vannak konfigurálva. Webalkalmazás esetén ez a projekthez társított Web.config fájl. Windows-alkalmazásokban a fájl neve (alkalmazás neve).exe.config. Egy üzembe helyezett alkalmazásban ennek a fájlnak ugyanabban a mappában kell lennie, mint a végrehajtható fájlnak.

Amikor az alkalmazás először végrehajtja a kapcsoló egy példányát létrehozó kódot, ellenőrzi a konfigurációs fájlt a névvel ellátott kapcsolóval kapcsolatos nyomkövetési szintű információkért. A nyomkövetési rendszer csak egyszer vizsgálja meg a konfigurációs fájlt egy adott kapcsoló esetében – amikor az alkalmazás először hozza létre a kapcsolót.

Az üzembe helyezett alkalmazásokban a nyomkövetési kódot úgy engedélyezheti, hogy újrakonfigurálja a kapcsolóobjektumokat, ha az alkalmazás nem fut. Ez általában a kapcsolóobjektumok be- és kikapcsolásával, illetve a nyomkövetési szintek módosításával, majd az alkalmazás újraindításával jár.

Amikor létrehoz egy kapcsolópéldányt, azt is inicializálja két argumentum megadásával: egy displayName argumentumot és egy leírási argumentumot. A konstruktor displayName argumentuma beállítja az Switch.DisplayName osztálypéldány tulajdonságát Switch . A displayName az a név, amelyet a kapcsoló konfigurálásához használnak a .config fájlban, és a leírás argumentumnak rövid leírást kell adnia a kapcsolóról és az általa vezérlő üzenetekről.

A konfigurálni kívánt kapcsoló nevének megadása mellett meg kell adnia a kapcsoló értékét is. Ez az érték egész szám. A BooleanSwitch0 érték a Ki értéknek felel meg, a nem nulla érték pedig a Be értéknek felel meg. A 0,1,2,3 és 4 érték esetében TraceSwitcha Ki, a Hiba, a Figyelmeztetés, az Információ és a Részletes érték felel meg. A 4-nél nagyobb számokat részletesként kezeli a rendszer, a nullánál kisebb számokat pedig Ki értékként kezeli a rendszer.

Feljegyzés

A .NET-keretrendszer 2.0-s verziójában szöveg használatával adhatja meg a kapcsoló értékét. Például true egy BooleanSwitch enumerálási értéket képviselő szöveghez, például Error egy TraceSwitch. A sor <add name="myTraceSwitch" value="Error" /> egyenértékű a következő értékével <add name="myTraceSwitch" value="1" />: .

Ahhoz, hogy a végfelhasználók konfigurálhassák az alkalmazás nyomkövetési kapcsolóját, részletes dokumentációt kell nyújtania az alkalmazás kapcsolóiról. Részletesen meg kell tudnia, hogy mely kapcsolók szabályozzák, hogy mi és hogyan kapcsolhatja be és ki őket. A végfelhasználónak is meg kell adnia egy .config fájlt, amely megfelelő súgóval rendelkezik a megjegyzésekben.

Nyomkövetési kapcsolók konfigurálása

  1. A nyomkövetési kapcsolók használatához először létre kell hoznia őket, és el kell helyeznie őket a kódban a nyomkövetési kapcsoló létrehozása és inicializálása című szakaszban leírtak szerint.

  2. Ha a projekt nem tartalmaz konfigurációs fájlt (app.config vagy Web.config), akkor a Project menüBen válassza az Új elem hozzáadása lehetőséget.

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

      A rendszer létrehozza és megnyitja az alkalmazáskonfigurációs fájlt. Ez egy XML-dokumentum, amelynek gyökéreleme <configuration>.

    • Visual C#: Az Új elem hozzáadása párbeszédpanelen válassza az XML-fájl lehetőséget. Nevezze el ezt a fájlalkalmazás.config nevet. Az XML-szerkesztőben az XML-deklaráció után adja hozzá a következő XML-t:

      <configuration>
      </configuration>
      

      A projekt lefordításakor az app.config fájl át lesz másolva a projekt kimeneti mappájába, és átnevezi az applicationname.exe.config nevet.

  3. <configuration> A címke után, de a </configuration> címke előtt adja hozzá a megfelelő XML-t a kapcsolók konfigurálásához. Az alábbi példák egy BooleanSwitch függvényt mutatnak be, amelynek a DisplayName tulajdonsága DataMessageSwitch és a TraceSwitch a DisplayName tulajdonsága TraceLevelSwitch.

    <system.diagnostics>
       <switches>
          <add name="DataMessagesSwitch" value="0" />
          <add name="TraceLevelSwitch" value="0" />
       </switches>
    </system.diagnostics>
    

    Ebben a konfigurációban mindkét kapcsoló ki van kapcsolva.

  4. Ha be kell kapcsolnia egy booleanSwitch-et, például DataMessagesSwitch az előző példában, módosítsa az értéket a 0-n kívüli egész számra.

  5. Ha be kell kapcsolnia egy TraceSwitch-et, például TraceLevelSwitch az előző példában, módosítsa az Értéket a megfelelő szintbeállításra (1-ről 4-re).

  6. Adjon hozzá megjegyzéseket a .config fájlhoz, hogy a végfelhasználó tisztában legyen azzal, hogy milyen értékeket kell módosítani a kapcsolók megfelelő konfigurálásához.

    Az alábbi példa bemutatja, hogyan nézhet ki a végső kód, beleértve a megjegyzéseket is:

    <system.diagnostics>
       <switches>
          <!-- This switch controls data messages. In order to receive data
             trace messages, change value="0" to value="1" -->
          <add name="DataMessagesSwitch" value="0" />
          <!-- This switch controls general messages. In order to
             receive general trace messages change the value to the
             appropriate level. "1" gives error messages, "2" gives errors
             and warnings, "3" gives more detailed error information, and
             "4" gives verbose trace information -->
          <add name="TraceLevelSwitch" value="0" />
       </switches>
    </system.diagnostics>
    

Lásd még