class Object

Public Instance Methods

analyze_404() click to toggle source

Prints links which resultet in 404 error.

# File lib/tasks/log_statistics.rb, line 51
def analyze_404
  selected_files.each do |file_name|
    result = [file_name[0,6], 0, 0]
    url = ''
    File.readlines(file_name).each do |line|
      if m = /Started(.*?)for/.match(line)
        url = m[1]
      end
      if m = /404/.match(line)
        p url.gsub('"','')
      end
    end
  end
end
init() click to toggle source

Init some internal vars

# File lib/tasks/log_statistics.rb, line 16
def init
  @by_day = {}
  if File.exist?('result.txt')
    File.readlines('result.txt').each do |line|
      a = line.chomp.split("\t")
      @by_day[a.first] = a
    end
  end  
end
response_by_days() click to toggle source

Collects total number of requests and respond time for calculating average response time.

# File lib/tasks/log_statistics.rb, line 30
def response_by_days
  selected_files.each do |file_name|
    key = file_name[0,6]
    next if @by_day[key]
    result = [key, 0, 0, 0]
    File.readlines(file_name).each do |line|
      next unless line.match 'Completed 200 OK in'
      time = $'.split('ms').first.strip.to_i
      result[1] += 1
      result[2] += time
    end
# average
    result[3] += result[2]/result[1]
    p result
    @by_day[key] = result
  end
end
selected_files() click to toggle source

Return list of selected files.

# File lib/tasks/log_statistics.rb, line 9
def selected_files
  Dir["#{ARGV.first}*.log"] 
end