我可以在.net core中实现
_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);
这导致一条消息没有属性。有没有更好的方法可以做到这一点,或者我做错了什么?
答案 0 :(得分:2)
使用Microsoft扩展日志(MEL)ILogger接口的整个想法并不依赖于特定的日志框架。
如果您开始创建NLog LogEventInfo
对象,那么您不妨调用NLog.LogManager.GetCurrentClassLogger()
并将其用作Logger。
但是也许这个维基页面可以给你一些想法: