【发布时间】:2021-08-23 18:50:29
【问题描述】:
我知道你可以这样做:
_Logger.Info("This is my message: {MessageId}. And here's an explanation: {expl}", messageId, expl)
这将根据它们在字符串中的顺序将 messageId 和 expl 的值插入到消息中,如 String.Format。
不幸的是,我想在结构化消息日志记录之外添加额外的属性,所以我使用了 LogEventInfo:
Dim ev as New LogEventInfo(LogLevel.Info, "", "This is my message: {MessageId}")
ev.Properties{"EventId"}=eventId
_Logger.Log(ev)
还有其他方式可以优雅地添加其他属性吗?
【问题讨论】:
-
我不明白这个问题。您是否有兴趣构建 LogEvent 可用于格式化输出消息的复杂消息模板?或者您是否有兴趣向 LogEvent 添加许多属性?也许阅读github.com/NLog/NLog/wiki/How-to-use-structured-logging
-
朱利安,很抱歉,当它出现时我没有注意到这条评论。我的问题是将添加几个属性的需求与结构化的日志消息简明扼要地结合起来。我自己想通了,做的事情与您在下面的答案略有不同,但我会在那里回复。
-
现已更新您的问题以匹配已接受的答案。