LogRecord的方法解析

时间:2018-05-21 21:08:15

标签: java regex scala date

日志是一个ASCII文件,每个请求有一行,包含以下列:

  1. 主持人提出请求。
  2. 未使用
  3. 尽可能使用主机名,否则无法查找名称的Internet地址。
  4. 格式为“DAY MON DD HH:MM:SS YYYY”的时间戳,其中DAY是星期几,MON是月份的名称,DD是月份的日期,HH:MM:SS是使用24小时制的时间,YYYY是一年。时区是-0400。
  5. 请求引号。
  6. HTTP回复代码。
  7. 回复中的字节。
  8. 所以,应该解析这样的字符串:

      

    202.32.92.47 - - [01 / Jun / 1995:00:00:59 -0600]“GET”run /~scottp / publish.html“200 271

         

    ix-or7-27.ix.netcom.com - John Dou [01 / Jun / 1995:00:02:51 -0600]“GET /~ladd/ostriches.html”200 205908

    那些应该被忽略:

      

    maz3.maz.net - [11 / Oa67220.dial.tip.net - - [12 / Oct / 1995:01:39:12 -0600]“POST /cgi-bin/phone.pl HTTP / 1.0 “200 309

         

    129.186.123.55 - - [12 / Oct / 1995ag5881.usask.ca - - [12 / Oct / 1995:16:07:36 -0600]“GET /images/letter_32.gif HTTP / 1.0”200 149 < / p>

    尝试了很多正则表达式^([^\s]*).-.([^\s]*)?.\[([^\]]*)]."([^\"]*)".([^\s]\d*).([^\s]\d*)?$

    但要么它没有忽略上面的错误日志,要么只是造成错误。

0 个答案:

没有答案