2016-11-22 5 views
1

何かを記録するときに、要求の完全修飾URLを含めたいと思います。使用可能な場合は、私のロギングテンプレートに{RequestUrl}のようなイベントロギングスコープ(serilogのコンテキストプロパティ)を使用したいと思います。私が使用できるプロパティがすでに存在するかどうか、または手動でこれを行う必要があるかどうかを知るにはどうすればよいですか?どのようなロギングスコープをそのまま使用できますか?

私は、次の特性を知っている:すべてのプロパティの概要は、要求時にデフォルトでサポートされてい

ActionId 
ActionName // Like ActionId from aspnet/Mvc (Microsoft.AspNetCore.Mvc.Internal.MvcCoreLoggerExtensions.ActionLogScope) 
Level // Gives the level e.g. Warning 
RequestId // Can be used for event correlation 
RequestPath // Like RequestId from aspnet/Hosting (Microsoft.AspNetCore.Hosting.Internal.HostingLoggerExtensions.HostingLogScope) 
SourceContext // Probably from serilog. Gives the TCategoryName of the ILogger e.g. MyNamespace.MyController 

?または、実行時にすべてのプロパティを取得することは可能ですか?あなたが渡されたオブジェクトをシリアル化するためにSerilogに指示する文脈の前に演算子@を使用することができるはず

+1

公式[ドキュメント](https://docs.microsoft.com/en-us/aspnet/core/fundamentals/logging#scope)はあまり言及していません... –

+0

Seqが接続されている場合は、 'select names()from stream'を実行してログに記録されたプロパティの個別のリストを取得できます。これが助けになるかどうかは分かりませんが、私が考えることはそれほどありません。がんばろう! –

+0

@NicholasBlumhardt残念ながら私はSeqを使っていません。(多分、それを使う人がプロパティの完全なリストを与えることができます。 – user764754

答えて

-1

_logger.LogInformation("{@context}!", context); 
+0

申し訳ありませんが、私の質問はSerilogで何かをシリアル化する方法ではありません。 – user764754

関連する問題