如何防止nlog记录16位数字?

时间:2016-03-16 16:46:15

标签: nlog

我想过滤掉任何日志文件中的任何16个并发数字。例如,如果我的日志消息最初是:

"you blah 01234567890123456 foo"

我希望它只记录:

"you blah foo"

我不知道要实现什么,因为它看起来像过滤器阻止记录整个邮件。我想在记录之前更改要记录的消息。

1 个答案:

答案 0 :(得分:2)

您可以使用replace layout render$message打包到目标布局中,

  

用另一个字符串替换另一个布局的输出中的字符串。

使用以下配置:

<targets>
    <target xsi:type="Console" name="console" 
            layout="${replace:searchFor=\\d\{17,17\}\\s:replaceWith=:regex=true:inner=${message}}"/>
</targets>

以及以下日志记录代码

var logger = LogManager.GetCurrentClassLogger();
logger.Info("you blah 01234567890123456 foo");

这就是控制台输出的样子:

  你好吗?

因为您可以使用任何正则表达式,您可以使用配置来正确删除或保留数字周围的空白区域,只需注意特殊字符的编码。

相关问题