C# NLog替换布局渲染器不适用于json内容

C# NLog替换布局渲染器不适用于json内容,c#,json,regex,nlog,C#,Json,Regex,Nlog,我使用了一个第三方软件包,它依赖于Nlog 4.7和Nlog.AspNetCore 4.8,该软件包将写入日志 在我的Nlog.config中 <logger name="package namespace" level="Info" writeTo="packageFile" /> <target xsi:type="File" name="packageFile" fileN

我使用了一个第三方软件包,它依赖于Nlog 4.7和Nlog.AspNetCore 4.8,该软件包将写入日志

在我的Nlog.config中

<logger name="package namespace" level="Info" writeTo="packageFile" />
<target xsi:type="File" name="packageFile" fileName="${baseFilePath}/packageFile.log" KeepFileOpen="true" layout="${message}" concurrentWrites="true" />
我想换一个新的

{"ABC":{"DEF":"A****14325","GHI":"01"}} 
这是我使用的模式:[A-Z]\d{1}\d{2} 我用这个来测试它:

更新: 我也尝试了这种模式

我的Nlog.config如下所示:

{"ABC":{"DEF":"AA00014325","GHI":"01"}} 
<variable name ="messageReplace" value="${replace:inner=${message}:searchFor=[A-Z]\\d{1\}\\d{2\}:replaceWith=****:regex=true}" />
<logger name="package namespace" level="Info" writeTo="packageFile" />
<target xsi:type="File" name="packageFile" fileName="${baseFilePath}/packageFile.log" KeepFileOpen="true" layout="${messageReplace}" concurrentWrites="true" />  
<variable name ="message1" value="AA00014325" />
<variable name ="messageReplace" value="${replace:inner=${message1}:searchFor=[A-Z]\\d{1\}\\d{2\}:replaceWith=****:regex=true}" />
<logger name="package namespace" level="Info" writeTo="packageFile" />
<target xsi:type="File" name="packageFile" fileName="${baseFilePath}/packageFile.log" KeepFileOpen="true" layout="${messageReplace}" concurrentWrites="true" /> 
它不再工作了……为什么

我想替换消息中的json字符串,我该怎么做

资料:

  • 平台:ASP.NET核心3
  • Nlog版本:4.7
  • NLog.AspNetCore版本:4.8

谢谢大家!

所以使用这个配置,我让它按照屏幕截图工作。 需要记住的是,配置是XML的,因此。但我看你是对的✔. 所以我相信这取决于你的正则表达式

 <variable name="messageNoDigits" value="${replace:inner=${message}:searchFor=[A-Z]\\d\{3\}:replaceWith=****:regex=true}" />


从我的角度看,正则表达式似乎不匹配,请与@DaneBalia仔细检查我尝试正则表达式[A-Z]\d{1}\d{2}在.NET正则表达式测试仪上正常
 <variable name="messageNoDigits" value="${replace:inner=${message}:searchFor=[A-Z]\\d\{3\}:replaceWith=****:regex=true}" />