【问题标题】:How to get rid of "\\" in Nlog messages?如何摆脱 Nlog 消息中的“\\”?
【发布时间】:2025-11-24 09:25:02
【问题描述】:

我正在使用 Nlog 将消息记录到 Elasticsearch。消息通常包含文件路径名。 Nlog 似乎在每个文件路径中转义了“\”字符,我想避免这种情况。 encode="false" 属性不适用于用于配置 Elasticsearch 目标的“field”标签。没有额外的“\”有没有其他方法来存储文件路径?

【问题讨论】:

  • ` Nlog 似乎转义了每个文件路径中的“\”字符`,对此不确定。你能举个例子吗? (配置和记录器调用)

标签: elasticsearch nlog


【解决方案1】:

我已经更彻底地搜索了文档并遇到了替换布局渲染器。以下是在我的情况下似乎有效的方法:

<variable name="replacedstring" value="${replace:searchFor=\\:wholeWords=false:replaceWith=/:regex=false:inner=${message}}" />

您只需在 Nlog.config 文件中定义变量,然后在通常使用包含预修改字符串(内部属性)的布局的地方使用它。我希望这就是我想要的。我还想知道是否可以在同一个变量中定义多个模式。例如,我们想用“/”替换“\”,同时我们想在同一个内部字符串中用“-”替换“\r\n”。有谁知道这是否可以使用这个特定的渲染器?文档对此只字未提。

【讨论】:

最近更新 更多