こちらの記事をご覧ください。
WebApi は、現在のカテゴリまたはレベルに関してトレース ライターを構成する方法を提供しません。
と
現在有効になっているカテゴリとレベルを判断するのは、ITraceWriter 実装の役割です。Web API フレームワークには、トレース構成の概念や、有効にするカテゴリとレベルの決定の概念がありません。
このアプローチの意図は、ITraceWriter 実装の独自のメカニズムに依存して、何をどこでトレースするかを構成することです。
たとえば、NLog 固有の ITraceWriter を使用する場合は、NLog 構成メカニズムを通じてトレースを構成する必要があります。
要するに、トレースを有効または無効にしたい場合、または特定のレベルのトレースをログに記録しないことを選択した場合は、SimpleTracer
.
独自のスレッド セーフ シングルトン TraceConfiguration (GlobalConfiguration に類似) 実装を作成して、トレース構成を制御し、コード内でオンまたはオフに切り替えることができます。
public void Trace(HttpRequestMessage request, string category, TraceLevel level, Action<TraceRecord> traceAction)
{
if(TraceConfiguration.Configuration.IsEnabled)
{
//trace
}
}
または、要求オブジェクトのプロパティを設定してアクセスし、トレースを有効にするかどうかを決定することもできます。これは、アクションとコントローラーの ActionFilters によって設定することも、コントローラー内で設定することもできます。
public void Trace(HttpRequestMessage request, string category, TraceLevel level, Action<TraceRecord> traceAction)
{
if(request.Properties["SupressTracing"] as string != "true")
{
//trace
}
}
または、記事が示唆するように、NLog や Log4Net などを使用している場合は、config などを介して有効なレベルを設定する必要があります。