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

解决方案 »

  1.   

    你的要处理日志?
    是不是这样,匹配一个"2011-11-06 00:30:56,xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx"
    然后开始记录exception
    再次匹配的时候记录完成。
      

  2.   

    如果你的日志文件是通过log4j等配置产生的,,估计在写的时候无法做异常捕获吧除非等日志文件写好了再写一个捕获异常的方法个人只知道思路,匹配每行不是以时间格式开始的数据
      

  3.   


    就是现在有一个现存的log文件
    我需要按照我上面写的查询我需要的
      

  4.   

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

  5.   

    恩,应该用正则来搞--signature------------------------------------
    http://www.mowker.com/list/