esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációEzt a böngészőt már nem támogatjuk.
Frissítsen a Microsoft Edge-re, hogy kihasználhassa a legújabb funkciókat, a biztonsági frissítéseket és a technikai támogatást.
Ez a cikk a ✔️ .NET-keretrendszer 4.5-ös és újabb verzióinak ✔️ .NET Core 3.1 és újabb verzióira vonatkozik
Ez az útmutató bemutatja, hogyan naplózhat egy új eseményt System.Diagnostics.Tracing.EventSource, hogyan gyűjthet eseményeket egy nyomkövetési fájlban, hogyan tekintheti meg a nyomkövetést, és hogyan ismerheti meg az EventSource alapfogalmait.
Megjegyzés
Számos technológia, amely integrálható az EventSource-zal, a "Nyomkövetés" és a "Nyomok" kifejezéseket használja a "Naplózás" és a "Naplók" helyett. A jelentés itt is ugyanaz.
Az EventSource célja, hogy a .NET-fejlesztők ilyen kódot írjanak egy esemény naplózásához:
DemoEventSource.Log.AppStarted("Hello World!", 12);
Ez a kódsor egy naplózási objektumot (DemoEventSource.Log
), egy módszert az esemény naplózására (AppStarted
), valamint opcionálisan néhány erősen típusos eseményparamétert (HelloWorld!
és 12
) tartalmaz. Nincsenek részletességi szintek, eseményazonosítók, üzenetsablonok vagy bármi más, amely nem szükséges a híváswebhelyen. Az eseményekre vonatkozó összes többi információ egy új osztály System.Diagnostics.Tracing.EventSourcealapján történő definiálásával íródik.
Íme egy teljes minimális példa:
using System.Diagnostics.Tracing;
namespace EventSourceDemo
{
public static class Program
{
public static void Main(string[] args)
{
DemoEventSource.Log.AppStarted("Hello World!", 12);
}
}
[EventSource(Name = "Demo")]
class DemoEventSource : EventSource
{
public static DemoEventSource Log { get; } = new DemoEventSource();
[Event(1)]
public void AppStarted(string message, int favoriteNumber) => WriteEvent(1, message, favoriteNumber);
}
}
A DemoEventSource osztály minden naplózni kívánt eseménytípushoz deklarál egy metódust. Ebben az esetben egyetlen " AppStarted" nevű eseményt határoz meg az AppStarted() metódus. Minden alkalommal, amikor a kód meghívja az AppStarted metódust, egy másik AppStarted esemény lesz rögzítve a nyomkövetésben, ha az esemény engedélyezve van. Ez az egyes eseményekkel rögzíthető adatok némelyike:
Az események létrehozásával kapcsolatos további információkért és ajánlott eljárásokért tekintse meg Esemény-létrehozási kódcímű témakört.
A kódban nincs szükség konfigurálásra, amely leírja, hogy mely eseményeket kell engedélyezni, hol kell elküldeni a naplózott adatokat, vagy milyen formátumban kell tárolni az adatokat. Ha most futtatja az alkalmazást, az alapértelmezés szerint nem hoz létre nyomkövetési fájlt. Az EventSource a Publish-subscribe mintát használja, amely megköveteli, hogy az előfizetők jelezzék az engedélyezni kívánt eseményeket, és szabályozhassák az előfizetett események szerializálását. Az EventSource Eseménykövetés windowsos (ETW) és EventPipe (csak.NET Core) szolgáltatásból való feliratkozáshoz használható integrációval rendelkezik. Az egyéni előfizetők a System.Diagnostics.Tracing.EventListener API-val is létrehozhatók.
Ez a bemutató egy EventPipe példát mutat be a .NET Core-alkalmazásokhoz. Ha szeretne többet megtudni a lehetőségekről, tekintse meg a részleteket itt: Eseménykövetések gyűjtése és megtekintése. EventPipe egy nyílt és platformfüggetlen nyomkövetési technológia, amely a .NET Core-futtatókörnyezetbe van beépítve, hogy a .NET-fejlesztők nyomkövetési eszközöket és hordozható kompakt nyomkövetési formátumot (*.nettrace-fájlokat) biztosítson. dotnet-trace egy parancssori eszköz, amely eventPipe-nyomkövetéseket gyűjt.
>dotnet-trace collect --providers Demo -- EventSourceDemo.exe
Ennek a következőhöz hasonló kimenetnek kell megjelennie:
Provider Name Keywords Level Enabled By
Demo 0xFFFFFFFFFFFFFFFF Verbose(5) --providers
Launching: EventSourceDemo.exe
Process : E:\temp\EventSourceDemo\bin\Debug\net6.0\EventSourceDemo.exe
Output File : E:\temp\EventSourceDemo\bin\Debug\net6.0\EventSourceDemo.exe_20220303_001619.nettrace
[00:00:00:00] Recording trace 0.00 (B)
Press <Enter> or <Ctrl+C> to exit...
Trace completed.
Ez a parancs EventSourceDemo.exe futtatott a "Demo" EventSource összes eseményével, és a nyomkövetési fájlt EventSourceDemo.exe_20220303_001619.nettrace
.
A Fájl megnyitása a Visual Studióban a naplózott eseményeket jeleníti meg.
A listanézetben láthatja, hogy az első esemény a Demo/AppStarted esemény. A szöveges oszlopban vannak a mentett argumentumok, az időbélyeg oszlopban az esemény 27 ms-ra történt a naplózás elindítása után, jobbra pedig a híváshívás látható. A többi esemény automatikusan engedélyezve van minden, a dotnet-trace által gyűjtött nyomkövetésben, bár figyelmen kívül hagyhatók és külön szűrhetők a felhasználói felületen, ha zavaróak. Ezek a további események rögzítenek néhány információt a folyamatról és a jitted kódról, így a Visual Studio rekonstruálhatja az eseményverem-nyomkövetéseket.
.NET-visszajelzés
A(z) .NET egy nyílt forráskód projekt. Visszajelzés adásához válasszon egy hivatkozást:
esemény
AI-alkalmazások és -ügynökök létrehozása
márc. 17. 21 - márc. 21. 10
Csatlakozzon a meetup sorozathoz, hogy valós használati esetek alapján, skálázható AI-megoldásokat hozzon létre más fejlesztőkkel és szakértőkkel.
RegisztrációOktatás
Modul
Telemetria használata .NET Aspire-projektben - Training
Ebben a modulban megismerkedhet a telemetria használatával a natív felhőbeli alkalmazások viselkedésének rögzítéséhez, valamint arról, hogy a .NET Aspire verem hogyan teszi egyszerűbbé az adatok tárolását és későbbi megtekintését.