Seq で Serilog を使用しており、Seq に表示されるログを独自のプロパティで強化したいと考えています。
次のようなログステートメントを入力すると...
Log.Information("ProcessCycle {Site} {Activity}", SiteName, ActivityName);
Seqで私は得る...
Site と Activity の値は、Seq で強化されたプロパティとして表示されますが、メッセージ全体にも表示されることに注意してください。
強化されたプロパティを取得した場所をログに記録する方法はありますが、テキスト メッセージ行に値が表示されませんか? 各呼び出しに ThreadId を追加する NuGet パッケージがあることに注意してください。Site プロパティと Activity プロパティを強化された props のリストに含めたいのですが、必ずしもメッセージ行に出力する必要はありません。
これに対する答えには、アプリケーションの理解も必要になる場合があります。
アプリケーションは、さまざまなことを行う複数のアクティビティを生成する Windows サービスです。そのため、Windows サービスは、そこに含まれるさまざまなアクティビティを調整します。スケジュールでは、各アクティビティで「プロセス」を呼び出して、作業を開始します。Process がオーケストレーターによって呼び出されるたびに、上記のようにサイトとアクティビティの値を自動的に含めるために、そのアクティビティによるすべてのログが必要です (さらに多くのプロパティ値と共に、メッセージ行にすべてを出力したくはありません)。
したがって、上記のエントリの代わりに、次のように表示されます... メッセージが「ProcessCycle」とだけ表示されていることに注意してください。

