.NET Core MEL-Protokollierung mit einer Syntax ähnlich der von Serilog

Post a reply

Smilies
:) :( :oops: :chelo: :roll: :wink: :muza: :sorry: :angel: :read: *x) :clever:
View more smilies

BBCode is ON
[img] is ON
[flash] is OFF
[url] is ON
Smilies are ON

Topic review
   

Expand view Topic review: .NET Core MEL-Protokollierung mit einer Syntax ähnlich der von Serilog

by Guest » 31 Dec 2024, 14:06

Ich verwende Serilog, bevorzuge jedoch MEL (

Code: Select all

Microsoft.Extensions.Logging
) Abstraktionen.
Einige Funktionen in Serilogs Serilog.ILogger sind in MELs ILogger nicht verfügbar oder sind verfügbar, aber äußerst ausführlich.
Ich möchte ein Protokollereignis anreichern. Mit Serilog würde ich Folgendes verwenden:

Code: Select all

_logger
.ForContext("Foo", "abc")
.ForContext("Bar", 123)
.ForContext("Baz", true)
.Information("Process returned {Result}", 42);
Aber das MEL-Äquivalent ist:

Code: Select all

using (_logger.BeginScope(new Dictionary {
{ "Foo", "abc" },
{ "Bar", 123 },
{ "Baz", true }
})) {
_logger.LogInformation("Process returned {Result}", 42);
}
Das ist nicht nur hässlich, ich vergesse auch immer die Syntax. Und das gilt sogar für ein einziges Protokollereignis.
Mir ist aufgefallen, dass es für solche Dinge zusätzlich zu den oben genannten noch verschiedene Syntaxen gibt. Gibt es eine einfachere Option?

Top