Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenDieser Browser wird nicht mehr unterstützt.
Führen Sie ein Upgrade auf Microsoft Edge durch, um die neuesten Features, Sicherheitsupdates und den technischen Support zu nutzen.
Protokollierungsanbieter speichern Protokolle, mit Ausnahme des Console
-Anbieters, der nur Protokolle als Standardausgabe anzeigt. Beispielsweise speichert der Azure Application Insights-Anbieter Protokolle in Azure Application Insights. Mehrere Anbieter können aktiviert werden.
Die standardmäßigen .NET Worker-App-Vorlagen:
using Microsoft.Extensions.Hosting;
using IHost host = Host.CreateApplicationBuilder(args).Build();
// Application code should start here.
await host.RunAsync();
Der vorherige Code zeigt die Program
Klasse, die mit den .NET Worker-App-Vorlagen erstellt wurde. Die nächsten Abschnitte enthalten Beispiele basierend auf den .NET Worker-App-Vorlagen, die den generischen Host verwenden.
Um die standardmäßig von Host.CreateApplicationBuilder
hinzugefügte Gruppe von Protokollierungsanbietern außer Kraft zu setzen, rufen Sie ClearProviders
auf und fügen Sie die gewünschten Protokollierungsanbieter hinzu. Beispiel: Der folgende Code:
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
builder.Logging.ClearProviders();
builder.Logging.AddConsole();
Weitere Anbieter finden Sie unter:
Um einen Dienst zu konfigurieren, der von ILogger<T>
abhängt, verwenden Sie die Konstruktorinjektion oder stellen Sie eine Factory-Methode bereit. Es wird empfohlen, den Factory-Methode-Ansatz nur zu verwenden, wenn keine andere Option verfügbar ist. Betrachten Sie beispielsweise einen Dienst, der eine von DI bereitgestellte ILogger<T>
Instanz benötigt:
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
builder.Services.AddSingleton<IExampleService>(
container => new DefaultExampleService
{
Logger = container.GetRequiredService<ILogger<IExampleService>>()
});
Der vorangehende Code ist ein Func<IServiceProvider, IExampleService>, das ausgeführt wird, wenn der DI-Container zum ersten Mal eine Instanz von IExampleService
erstellt. Sie können auf diese Weise auf jeden der registrierten Dienste zugreifen.
Microsoft-Erweiterungen enthalten die folgenden Protokollierungsanbieter als Teil der Laufzeitbibliotheken:
Die folgenden Protokollierungsanbieter werden von Microsoft ausgeliefert, jedoch nicht als Teil der Laufzeitbibliotheken. Sie müssen als zusätzliche NuGet-Pakete installiert werden.
Der Console
-Anbieter protokolliert die Ausgabe in der Konsole.
Der Debug
Anbieter schreibt die Protokollausgabe mithilfe der System.Diagnostics.Debug-Klasse, insbesondere über die Debug.WriteLine-Methode und nur, wenn der Debugger angefügt ist. Die DebugLoggerProvider erstellt Instanzen einer Loggerklasse, die die ILogger
Schnittstelle implementiert.
Der EventSource
-Anbieter schreibt in eine plattformübergreifende Ereignisquelle mit dem Namen Microsoft-Extensions-Logging
. Unter Windows verwendet der Anbieter ETW.
Das dotnet-trace--Tool ist ein plattformübergreifendes globales CLI-Tool, das die Sammlung von .NET Core-Ablaufverfolgungen eines laufenden Prozesses ermöglicht. Das Tool sammelt Microsoft.Extensions.Logging.EventSource-Anbieterdaten mithilfe einer LoggingEventSource.
Siehe dotnet-trace für Installationsanweisungen. Ein Diagnoseprogramm mit dotnet-trace
finden Sie unter Debuggen der hohen CPU-Auslastung in .NET Core.
Der EventLog
-Anbieter sendet die Protokollausgabe an das Windows-Ereignisprotokoll. Im Gegensatz zu den anderen Anbietern erbt der EventLog
-Anbieter nicht die Standardeinstellungen für Nicht-Anbieter. Wenn EventLog
Protokolleinstellungen nicht angegeben sind, werden sie standardmäßig auf LogLevel.Warning
festgelegt.
Um Ereignisse unter LogLevel.Warningzu protokollieren, legen Sie die Protokollebene explizit fest. Im folgenden Beispiel wird die Standardprotokollebene des Ereignisprotokolls auf LogLevel.Informationfestgelegt:
"Logging": {
"EventLog": {
"LogLevel": {
"Default": "Information"
}
}
}
AddEventLog-Überladungen können EventLogSettings übergeben. Wenn null
nicht angegeben ist oder wenn es keine Angabe gibt, werden die folgenden Standardeinstellungen verwendet:
LogName
: "Anwendung"SourceName
: ".NET Runtime"MachineName
: Der Name des lokalen Computers wird verwendet.Mit dem folgenden Code wird der SourceName
vom Standardwert ".NET Runtime"
in CustomLogs
geändert:
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args);
builder.Logging.AddEventLog(
config => config.SourceName = "CustomLogs");
using IHost host = builder.Build();
host.Run();
Das Anbieterpaket Microsoft.Extensions.Logging.AzureAppServices schreibt Protokolle in Textdateien in das Dateisystem einer Azure App Service-App und in Blob Storage in einem Azure Storage-Konto.
Das Anbieterpaket ist nicht in den Laufzeitbibliotheken enthalten. Um den Anbieter zu verwenden, fügen Sie das Anbieterpaket zum Projekt hinzu.
Verwenden Sie zum Konfigurieren von Anbietereinstellungen AzureFileLoggerOptions und AzureBlobLoggerOptions, wie im folgenden Beispiel gezeigt:
using Microsoft.Extensions.Logging.AzureAppServices;
HostApplicationBuilder builder = Host.CreateApplicationBuilder(args)
builder.Logging.AddAzureWebAppDiagnostics();
builder.Services.Configure<AzureFileLoggerOptions>(options =>
{
options.FileName = "azure-diagnostics-";
options.FileSizeLimit = 50 * 1024;
options.RetainedFileCountLimit = 5;
});
builder.Services.Configure<AzureBlobLoggerOptions>(options =>
{
options.BlobName = "log.txt";
});
using IHost host = builder.Build();
// Application code should start here.
await host.RunAsync();
Wenn eine Bereitstellung in Azure App Service erfolgt, verwendet die App die Einstellungen im Abschnitt App Service logs (App Service-Protokolle) auf der Seite App Service im Azure-Portal. Wenn die folgenden Einstellungen aktualisiert werden, werden die Änderungen sofort wirksam, ohne dass ein Neustart oder eine erneute Bereitstellung der App erforderlich ist.
Der Standardspeicherort für Protokolldateien befindet sich im Ordner D:\home\LogFiles\Application. Zusätzliche Standardwerte variieren je nach Anbieter:
Dieser Anbieter protokolliert nur, wenn das Projekt in der Azure-Umgebung ausgeführt wird.
Azure-Protokollstreaming unterstützt das Anzeigen von Protokollaktivitäten in Echtzeit von:
So konfigurieren Sie Azure Log Streaming:
Navigieren Sie zur Seite Log Stream (Protokollstream), um Protokolle anzuzeigen. Die protokollierten Nachrichten werden mit der ILogger
Schnittstelle protokolliert.
Das Microsoft.Extensions.Logging.ApplicationInsights-Anbieterpaket schreibt Protokolle in Azure Application Insights. Application Insights ist ein Dienst, der eine Web-App überwacht und Tools zum Abfragen und Analysieren der Telemetriedaten bereitstellt. Wenn Sie diesen Anbieter verwenden, können Sie Ihre Protokolle mithilfe der Application Insights-Tools abfragen und analysieren.
Weitere Informationen finden Sie in den folgenden Ressourcen:
Wenn Sie eine eigene Implementierung der ILoggerProvider Schnittstelle und die entsprechende benutzerdefinierte Implementierung von ILoggerentwickeln möchten, sollten Sie die folgenden Punkte berücksichtigen:
Eine Implementierung von ILoggerProvider
erstellt über die ILoggerProvider.CreateLogger-Methode eine ILogger
. Wenn Ihre Implementierung Protokollierungsmeldungen ohne Blockierung in die Warteschlange einreihen soll, sollten die Meldungen zuerst materialisiert werden, oder der Objektzustand, der zum Materialisieren eines Protokolleintrags verwendet wird, sollte serialisiert werden. Dadurch werden potenzielle Ausnahmen von verworfenen Objekten vermieden.
Weitere Informationen finden Sie unter Implementieren eines benutzerdefinierten Protokollierungsanbieters in .NET.
Hier sind einige Protokollierungsframeworks von Drittanbietern, die mit verschiedenen .NET-Workloads funktionieren:
Einige Drittanbieterframeworks können eine semantische Protokollierung (auch als strukturierte Protokollierung bezeichnet) ausführen.
Die Verwendung eines Drittanbieterframeworks ähnelt der Verwendung eines der integrierten Anbieter:
ILoggerFactory
- oder ILoggingBuilder
-Erweiterungsmethode auf.Weitere Informationen finden Sie in der Dokumentation der einzelnen Anbieter. Protokollierungsanbieter von Drittanbietern werden von Microsoft nicht unterstützt.
Feedback zu .NET
.NET ist ein Open Source-Projekt. Wählen Sie einen Link aus, um Feedback zu geben:
Ereignisse
Erstellen von KI-Apps und Agents
17. März, 21 Uhr - 21. März, 10 Uhr
Nehmen Sie an der Meetup-Serie teil, um skalierbare KI-Lösungen basierend auf realen Anwendungsfällen mit Mitentwicklern und Experten zu erstellen.
Jetzt registrierenTraining
Modul
Erfassen von Webanwendungsprotokollen mit der Diagnoseprotokollierung für App Service - Training
Erfahren Sie, wie Sie die Ausgabe der Ablaufverfolgung Ihrer Azure-Web-Apps erfassen. Zeigen Sie einen Liveprotokollstream an, und laden Sie Protokolldateien herunter, um sie offline zu analysieren.