提取日志文件值



如何设置正则是从错误开始的字符串,并以info或debug或警告忽略线路断裂结束。日志样本:

错误2017/12/12 00:11:34.352错误:{0} System.Reflection.targetInvocationException:异常是由调用的目标抛出的。---> outboundServicesoftFailUreException:针对聚合服务执行请求的故障:对象引用未设置为对象实例。 在proxyaggregationservice.ecute [t](ILOG日志,请求请求)上 在ResthangereQuestFormaf(字符串mafguid,字符串sendercode)上 在handerimpl(clearupworkbookrequest请求) 在UnitrequestHandler`1.Handle(Trequest请求) 在ExecuteInternal [Trequest,Tresponse](trequest请求) ---内部异常的结尾堆栈跟踪--- 在System.RuntimeThodHandle.invokeMethod(对象目标,对象[]参数,签名SIG,布尔构造函数) 在System.Reflection.runtimemethodinfo.unsafeinvokeinternal(object obj,object []参数,对象[]参数) 在System.Reflection.RuntimeMethodinfo.Invoke(Object obj,bindingflags InvokeAttr,粘合剂粘合剂,object []参数,cultureinfo培养物)) 在execunknown(对象请求) 在Invokemethodontarget() 在cproceed() 在拦截时(IINVocation调用) 在AbstractInvocation.proceed() 在拦截时(IINVocation调用) 在AbstractInvocation.proceed() 在拦截(IINVocation调用)

调试2017/12/12 00:11:35.300输入blah blah bla

警告2017/12/12 00:11:37.300可能的问题

尝试过 - 没有成功

Regex r = new Regex(@"(ERROR.*?((?:2|1)\d{3}(?:-|\/)(?:(?:0[1-9])|(?:1[0-2]))(?:-|\/)(?:(?:0[1-9])|(?:[1-2][0-9])|(?:3[0-1]))(?:T|\s)(?:(?:[0-1][0-9])|(?:2[0-3])):(?:[0-5][0-9]):(?:[0-5][0-9])))(.*)");

我认为您可以使用正面的lookahead进行,直到遇到信息或调试或警告。

ERROR[Ss]*?(?=s+INFO|DEBUG|WARN)

  • 匹配ERROR
  • 匹配任何空格字符或任何非Whitespace字符零或更多次非贪婪[Ss]*
  • 积极的LookAhead (?=
  • 断言下面的是一个或多个空间s+
  • 随后是信息或调试或警告INFO|DEBUG|WARN
  • 关闭阳性lookahead )

演示

Regex r = new Regex(@"ERROR[Ss]*?(?=s+INFO|DEBUG|WARN)");

相关内容

  • 没有找到相关文章

最新更新