解析apache常见的日志格式日志文件

我正在尝试从常见的日志格式日志文件中获取三条信息。 日志文件的条目是:

65.54.188.137 - - [03/Oct/2007:02:20:22 -0400] "GET /~longa/statistics/code/xlispstat/smoothers/spline/ HTTP/2.0" 301 2633 

从那时起,我想在散列中存储IP的出现次数,URL和状态代码。 我认为他们每个人都必须独立。 即使您可以指出我正确的方向,任何帮助将不胜感激。

您可以使用正则表达式从日志条目中读取信息。 像这样的东西:

 lines.each do |line| matches = /^(\S+).*GET\s(.*)\sHTTP\S*\s(\d+)/.match(line) ip = matches[1] url = matches[2] status = matches[3] do 

然后,您可以将此信息放入哈希并按您喜欢的方式处理它。