C# NLog替换布局渲染器不适用于json内容
我使用了一个第三方软件包,它依赖于Nlog 4.7和Nlog.AspNetCore 4.8,该软件包将写入日志 在我的Nlog.config中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
<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}" />