簡體   English   中英

如何將參數添加到.Net Core 結構化日志記錄而不在消息中引用它?

[英]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。

但也許這個維基頁面可以給你一些想法:

https://github.com/NLog/NLog.Extensions.Logging/wiki/NLog-properties-with-Microsoft-Extension-Logging

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM