クライアントが操作ID(通常はGUID)を送信して、要求ログをトレースできるようにするRESTful設定では珍しいことではありません。Web APIの要求による操作IDの維持
私の質問は、Web APIでは、リクエストごとのIDを追跡するために.NET Web APIにネイティブな方法がありますか?
log4netにはそれを追跡できるLogicalContextがあります。 LogicalContextの問題点は、log4netに固有であり、NLogでは使用できないことです。 LogicalContextにすべてのキーのリストを取得する方法はありません。私は手前のキーを知っていなければなりません。あるAPIがそれを「操作ID」と呼び、もう1つのAPIがそれを「アクティビティID」と呼んでいる場合に問題になります。
ありがとうございます。しかし、問題があります:Trace.CorrelationManager.ActivityIdは一貫していないようです。要求でActivityIdを特定の値に設定し、要求中に複数のスレッドをインスタンス化すると、log4netのLogicalThreadContextが複数のスレッドにわたって一貫しているのに対し、これらのスレッドのActivityIdの値はすべて同じではありません。 – Husain
@Husain NLogは非同期論理コンテキストがスレッド間を移動するときにMappedDiagnosticsLogicalContext(MDLC)を持ちます。 https://github.com/NLog/NLog/wiki/MDLC-Layout-Renderer –