Serilog-Ausgabe an Konsole (mit ToString () -Daten) und seq (mit strukturierten Daten)

Aug 17 2020

Ich gebe meine protokollierten Daten an beide aus Consoleund Seqversinke. Funktioniert super.

Wenn ich einen POCO anmelde:

  • die ConsoleSenke, es ist eine lange Textzeile mit allen Eigenschaften und den Daten.
  • zu Seqsinken, es ist schön strukturiert, so dass es einfach zu suchen / filtern / etc. ist.

Gibt es eine Möglichkeit, dass bei der Ausgabe des Werts an die Konsolensenke möglicherweise die ToString () -Methode des POCO (anstelle aller Eigenschaften) verwendet wird, während Seq genau das ist, was es jetzt ist?

Ich experimentiere gerade - einige Klassen haben kein überschriebenes ToString (), was bedeutet, dass ich dort nur den Klassennamen bekomme.

Ist das möglich?

Antworten

1 NicholasBlumhardt Aug 18 2020 at 04:45

Serilog erfasst jede Ereigniseigenschaft genau einmal und wählt zu diesem Zeitpunkt entweder eine ToString()oder eine strukturierte Darstellung.

Erst später in der Protokollierungspipeline erreichen Ereignisse Senken wie Consoleund Seq, sodass eine einzelne Senke (oder Konfiguration für eine Senke) nicht beeinflussen kann, wie ein bestimmter Eigenschaftswert erfasst wird.