Http_Error_Log

A Ruby gem to turn an error log (eg Nginx error.log) into Ruby data structures:

2012/01/01 01:01:01 [error] 11563#0: *183 connect() failed (111: Connection refused) while connecting to upstream, client: 11.11.11.11, server: test.test.com, request: "GET /stylesheets/en-us/, , .css?time=1286211794 HTTP/1.1", upstream: "http://127.0.0.1:4567/test/en-us/Test-Page.css?time=1234.5678", host: "www.test.com", referrer: "http://www.test.com/"

# ->
[ { :created_at=>Time, :upstreatm=>String, ...} ]

Installation

gem install Http_Error_Log

Usage

require "Http_Error_Log"

Http_Error_Log "/my/nginx/error.log"
# -->  [ Hash, Hash, Hash ]

Each Hash object has:

:created_at  => Time.parse(str)  # Time object.
:msg         => "*183 connect() failed (111: Connection refused) while connecting to upstream"
:error       => "[error] 11563#0"
:line        => 5                 # line number in file

# plus the other fiends in the file:
#  :upstream, :server, :request, etc.

Skip records using a date/time string:

Http_Error_Log "err.log", '2012/04/04 04:04:04'

# --> Skips records that are less OR equal to:
#     '2012/04/04 04:04:04'

Run Tests

git clone git@github.com:da99/Http_Error_Log.git
cd Http_Error_Log
bundle update
bundle exec bacon spec/lib/main.rb

"I hate writing."

If you know of existing software that makes the above redundant, please tell me. The last thing I want to do is maintain code.