日期:2014-05-20  浏览次数:20918 次

异常捕获
2011-11-06 00:30:56,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
2011-11-06 00:30:56,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
javax.xml.rpc.ServiceException: /rest/banner/show
at sdkjflksjdfkljslkdfjljsd
at sdfsdfsdfsadf
at sdfsdfsadf
at sdfsdfsdf
2011-11-06 00:30:56,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx

比如上面是一个记录异常的日志文件,记录时间以及发生了什么日志。
如何用正则表达式表示两个时间段之间是否发生了异常,如果发生了异常,怎么把发生的异常记录下来?

------解决方案--------------------
做过类似的东西,不过是给其他人做sql-review,匹配出所有hibernate,我是用groovy写好的。

不知道你具体是要达到什么目标,但可以给你几个思路。
1. 直接使用shell脚本,grep 中有-B和-A这两个参数可以使用,具体可以man grep去看看。
2. 正则匹配一般是逐行匹配,按照你得思路要做整段匹配的话,一个是效率不高,另外表达式写出来兼容性也不高,建议还是按上面朋友的说法,匹配前半段的时间,然后记录Exception,截止到下一个时间点。
3. 不太建议大量使用正则,效率不高,多使用字符匹配,程序性能会偏高些。