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

时间:2013-10-22 08:58:20

标签: ruby parsing

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

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和状态代码。我认为他们每个人都必须自己。即使你能指出我正确的方向,任何帮助都会受到赞赏。

1 个答案:

答案 0 :(得分:1)

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

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

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