[英]How to add a parameter to .Net Core structured logging without referencing it in a message?
我可以在 .net 核心中做到這一點
_logger.LogInformation("Token validated {clientId}", "MyId");
然后像NLog
這樣的日志庫會知道消息中有一個名為clientId
的屬性,其值為MyId
,並且可以以特殊的方式呈現它。
我正在嘗試在消息本身中不包含該屬性的情況下做同樣的事情,但無法確定它。 這是我到目前為止所做的,它不會導致NLog
中的屬性:
LogEventInfo info = new LogEventInfo
{
Properties = {{"clientId", "MyId"}},
};
_logger.Log(Microsoft.Extensions.Logging.LogLevel.Information, "Token validated", info, null, info.MessageFormatter);
這會導致消息沒有屬性。 有沒有更好的方法來做到這一點,或者我做錯了什么?
Microsoft-Extension-Logging (MEL) ILogger-interface 的整個想法不依賴於特定的 Logging-Framework。
如果您開始創建 NLog LogEventInfo
-objects,那么您不妨調用NLog.LogManager.GetCurrentClassLogger()
並將其用作 Logger。
但也許這個維基頁面可以給你一些想法:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.