如何在nlog.config中拆分数据并提取aspnet-request-ip首个IP
提取NLog中aspnet-request-ip字段的首个IP
方法一:在NLog配置中直接处理
通过NLog的${replace}布局渲染器,直接对aspnet-request-ip的输出做字符串替换,移除逗号及后续内容:
<attribute name="ClientIp" layout="${replace:inner=${aspnet-request-ip}:searchFor=,\s.*:replaceWith=}" />
searchFor=,\s.*:匹配逗号、紧随的空格,以及之后的所有字符replaceWith=:将匹配到的内容替换为空,最终只保留首个IP
方法二:代码中解析处理
如果是在业务代码里读取日志字段后处理,直接按逗号分割字符串,取第一个元素并去除首尾空格即可:
var rawIp = "1.2.3.4, 1.1.1.1:2000"; // 从NLog字段获取的原始IP字符串 var firstIp = rawIp.Split(',')[0].Trim();
内容的提问来源于stack exchange,提问作者Negin
相关产品推荐
相关产品推荐

