Method: Monitor::Logmon#scan

Defined in:
lib/chef_monitor/logmon.rb

#scan(line) ⇒ Object



45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
# File 'lib/chef_monitor/logmon.rb', line 45

def scan(line)
  @regex = /(\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}) - (.{0})- \[([^\]]+?)\]  "(PUT|DELETE|POST) ([^\s]+?) (HTTP\/1\.1)" (\d+) "(.*)" (\d+) "-" "(.*)" "(.*)" "(.*)" "(.*)" "(.*)" "(.*)" "(.*)" "(.*)" "(.*)"/
  if line =~ @regex
    data = {}
    data['time']    = $3
    data['user']    = $16
    data['server']  = LOGMONNAME
    data['org']     = $5.split('/')[2] unless $5.split('/')[2].nil?
    data['object']  = $5.split('/')[3] unless $5.split('/')[3].nil?
    data['name']    = $5.split('/')[4] unless $5.split('/')[4].nil?
    data['version'] = $5.split('/')[5] unless $5.split('/')[5].nil?
    data['action']  = $4
    return data.to_json
  end
  return nil
end