コンソールへのSerilog出力(ToString()データを使用)およびseq(構造化データを使用)

Aug 17 2020

ログに記録したデータを両方ConsoleSeqシンクに出力します。よく働く。

POCOを次の場所に記録すると:

  • Consoleシンク、それはすべてのプロパティとデータとの長いテキスト行。
  • Seqそれは/フィルター/などを検索するのは簡単ですので、シンク、それがうまく構造化されます。

さて、コンソールシンクに値を出力するときに、POCOのToString()メソッド(-all-プロパティの代わりに)を使用し、Seqにそれが正確にあるようにする方法はありますか?

私は今実験中です-一部のクラスにはオーバーライドされたToString()がないため、そこでクラス名を取得するだけです。

これは可能ですか?

回答

1 NicholasBlumhardt Aug 18 2020 at 04:45

Serilogは、各イベントプロパティを1回だけキャプチャし、その時点で、ToString()または構造化された表現を選択します。

イベントがConsoleandのようなシンクに到達するのはロギングパイプラインの後半であるSeqため、個々のシンク(またはシンクの構成)が特定のプロパティ値のキャプチャ方法に影響を与える方法はありません。