Serilog-Ausgabe an Konsole (mit ToString () -Daten) und seq (mit strukturierten Daten)
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
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.