Serilog: Fehler beim Schreiben einer Zeile mit 3 schließenden Klammern

Erstellt am 18. Okt. 2016  ·  3Kommentare  ·  Quelle: serilog/serilog

Beim Schreiben von Klartext in eine RollingFile-Senke wurde zufällig eine JSON-Zeile ausgegeben. Es scheint schließende Klammertripeln in die doppelten geschweiften Klammern umzuwandeln. Der folgende Code soll dies veranschaulichen. testLogger ist ein einfacher Wrapper, mit dem ich ihn optional anstelle der Datei an das Debug-Fenster senden kann. Die Ergebnisse stammen aus der Datei.

var json1 = @"{ ""test"": ""test""}";
testLogger.Log (json1);

var json2 = @"{ ""test"": ""test"", { ""nest1"": ""one"" }}";
testLogger.Log (json2);

var json3 = @"{ ""test"": ""test"", { ""nest1"": ""one"", { ""nest2"": ""two""}}}";
testLogger.Log (json3);

17.10.2016 08:34:48.111 -04:00 [Warnung] { "test": "test"}
17.10.2016 08:34:48.111 -04:00 [Warnung] { "test": "test", { "nest1": "one" }}
2016-10-17 08:34:48.111 -04:00 [Warnung] { "test": "test", { "nest1": "one", { "nest2": "two"}}

Hilfreichster Kommentar

Hallo, danke für den Bericht!

Dies liegt daran, dass das Argument für die Protokollierung eine Nachrichtenvorlage (Formatzeichenfolge) ist, nicht die eigentlichen zu protokollierenden Daten.

Sie können die gewünschte Ausgabe erhalten mit:

var json1 = @"{ ""test"": ""test""}";
testLogger.Log("{Json:l}", json1);

( :l schreibt die Zeichenfolge als Literal ohne zusätzliche Anführungszeichen.)

Beifall,
Nick

Alle 3 Kommentare

Hallo, danke für den Bericht!

Dies liegt daran, dass das Argument für die Protokollierung eine Nachrichtenvorlage (Formatzeichenfolge) ist, nicht die eigentlichen zu protokollierenden Daten.

Sie können die gewünschte Ausgabe erhalten mit:

var json1 = @"{ ""test"": ""test""}";
testLogger.Log("{Json:l}", json1);

( :l schreibt die Zeichenfolge als Literal ohne zusätzliche Anführungszeichen.)

Beifall,
Nick

Meine Güte, das war furchtbar schnell. Vielen Dank.

Gern geschehen, danke 👍

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen