在NLog和/或Serilog中记录文字消息

时间:2018-04-05 18:03:53

标签: .net formatting escaping nlog serilog

更新:这结果是Serilog中存在的差异(我隧道到),但NLog中存在,它将单个参数视为逐字符串(作为一个(具体来说,我可能会期待)

使用NLog,如果我想记录可能包含嵌入式双括号的内容:{{而不将它们折叠,那么最有效的方法是什么?

e.g:

NLog.LogManager.GetLogger("x").Warn("{{\"aaa}}")

在我的自定义serilog-target中发出:

{"aaa}

我想要:

{{"aaa}}

NLog.LogManager.GetLogger("x").Warn("{0}","{{\"aaa}}")

最好的方式还是有更有效的方式?

更新:不需要这样的技巧:

NLog.LogManager.GetLogger("x").Warn("{{\"aaa}}")

......确实只是工作!

(这不是(仅仅)我是迂腐的,它来自a question regarding a high perf/throughput requirement的后续行动)

1 个答案:

答案 0 :(得分:0)

原来问题是错误的。上面的代码在NLog中有效 - 单个字符串不被视为消息模板, 逐字呈现。

根据链接的问题,我正在通过Serilog进行隧道挖掘,而Serilog正在进行崩溃,我会在问题中显示效果。