Ich aktualisiere meine alte App, um Serilog zu verwenden. Es handelt sich um die App asp.net C# webForms .NET Framework 4.8.
Die Idee ist:
Es gibt insgesamt 3 Senken werden konfiguriert... Datei, Ereignis und Datenbank
Standardmäßig sollten alle Protokolle mit einem Mindestmaß an Informationen an die Datenbank und die Ereignisanzeige gesendet werden.
< li>Ausführliches Protokoll wird in die Datei verschoben.
Unten ist die Konfiguration aufgeführt, die ich hinzugefügt habe.
Diese Konfiguration schreibt Protokolle in allen drei Senken und filtert nicht nach ausführlichen Protokollen für Dateisenken.
Die Protokolldatei enthält alle Protokolle genauso wie die Datenbank und die Ereignisanzeige.
Die Filterbedingung funktioniert einwandfrei, wenn sie aus dem Code hinzugefügt wird ... nicht aus der JSON-Konfiguration.
Log.Logger = new LoggerConfiguration()
.ReadFrom.Configuration(configuration) // Use the configuration object
//.Filter.ByIncludingOnly(x=>x.Level == LogEventLevel.Verbose)
.CreateLogger();
Ich aktualisiere meine alte App, um Serilog zu verwenden. Es handelt sich um die App asp.net C# webForms .NET Framework 4.8. Die Idee ist: [list] [*]Es gibt insgesamt 3 Senken werden konfiguriert... Datei, Ereignis und Datenbank [*]Standardmäßig sollten alle Protokolle mit einem Mindestmaß an Informationen an die Datenbank und die Ereignisanzeige gesendet werden. < li>Ausführliches Protokoll wird in die Datei verschoben. [*]Unten ist die Konfiguration aufgeführt, die ich hinzugefügt habe. [*]Diese Konfiguration schreibt Protokolle in allen drei Senken und filtert nicht nach ausführlichen Protokollen für Dateisenken. [*]Die Protokolldatei enthält alle Protokolle genauso wie die Datenbank und die Ereignisanzeige. [*]Die Filterbedingung funktioniert einwandfrei, wenn sie aus dem Code hinzugefügt wird ... nicht aus der JSON-Konfiguration. [/list] Irgendeine Idee, was fehlt hier. [code]{ "Serilog": { "Using": [ "Serilog.Sinks.File", "Serilog.Sinks.MSSqlServer", "Serilog.Settings.Configuration", "Serilog.Sinks.EventLog", "Serilog.Expressions" ], "MinimumLevel": { "Default": "Verbose", // Default logging level "Override": { "Microsoft": "Warning", // Override for specific namespaces "System": "Warning" } }, "WriteTo": [ { "Name": "MSSqlServer", "Args": { "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}", "restrictedToMinimumLevel": "Information", "connectionString": "", "tableName": "SystemLogEvents", "autoCreateSqlTable": true } }, { "Name": "File", "Args": { "path": "Logs/filtered_logs.log", // Specify the file path "rollingInterval": "Day", // Log rotation interval "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level:u3}] {Message:lj}{NewLine}{Exception}" }, "Filter": [ { "Name": "ByIncludingOnly", "Args": { "expression": "@l = 'Verbose'" // Filter criteria } } ] }, { "Name": "EventLog", "Args": { "restrictedToMinimumLevel": "Information", "source": "MyApp", "manageEventSource": true, "outputTemplate": "{Timestamp:yyyy-MM-dd HH:mm:ss.fff zzz} [{Level}] {Message}{NewLine}{Exception}" } } ] } } [/code]
[code]Log.Logger = new LoggerConfiguration() .ReadFrom.Configuration(configuration) // Use the configuration object //.Filter.ByIncludingOnly(x=>x.Level == LogEventLevel.Verbose) .CreateLogger();
Ich verwende Serilog, bevorzuge jedoch MEL ( Microsoft.Extensions.Logging ) Abstraktionen.
Einige Funktionen in Serilogs Serilog.ILogger sind in MELs ILogger nicht verfügbar oder sind verfügbar, aber...
Ich verwende Quartz.NET in meiner .NET-Webanwendung und es überflutet die Protokolle mit der „Batch-Erfassung von # Triggern“, die ich aus den Protokollen herausfiltern möchte. Ich habe es geschafft,...
Ich verwende Quartz.NET in meiner .NET-Webanwendung und es überflutet die Protokolle mit der „Batch-Erfassung von # Triggern“ , die ich aus den Protokollen herausfiltern möchte . Ich habe es...
Ich habe eine ASP.NET -Kern -Web -API, in der ich Serilog zur Protokollierung verwende. .Httplogging.httploggingMiddleware in der Protokoll-Datei, aber in der Datenbank möchte ich nur Warnung aus...
Wie von Microsoft vorgeschlagen, habe ich versucht, ihren Hochleistungsprotokollierungsansatz (auch als LoggerMessage-Muster bekannt) mit dem Serilog-Logger zu verwenden. Aus irgendeinem Grund...