Yell Gelf - Graylog2 Adapter for Your Extensible Logging Library

If you are not yet familiar with Yell - Your Extensible Logging Library check out the githup project under https://github.com/rudionrails/yell or jump directly into the Yell wiki at https://github.com/rudionrails/yell/wiki.

Just in case you wonder: GELF means Graylog Extended Log Format. Read all it at http://www.graylog2.org/about/gelf.

Build Status

The Graylog adapter for Yell works and is tested with ruby 1.8.7, 1.9.x, jruby 1.8 and 1.9 mode, rubinius 1.8 and 1.9 as well as ree.

Installation

System wide:

gem install yell-adapters-gelf

Or in your Gemfile:

gem "yell-adapters-gelf"

Usage

After you set-up Graylog2 accordingly, you may use the Gelf adapter just like any other.

logger = Yell.new :gelf

# or alternatively with the block syntax
logger = Yell.new do |l|
  l.adapter :gelf
end

logger.info 'Hello World!'

Now check your Graylog2 web server for the received message. By default, the gelf adapter will send the following information to Graylog2:

facility: The GELF facility (default: 'yell')
level: The current log level
timestamp: The time when the log event occured
host: The current hostname
file: The name of the file where the log event occured
line: The line in the file where the log event occured
_method: The method where the log event occured
_pid: The PID of your current process

Example: Running with a different GELF facility

logger = Yell.new :gelf, :facility => 'my own facility'

# or with the block syntax
logger = Yell.new do |l|
  l.adapter :gelf, :facility => 'my own facility'
end

Example: Running Graylog2 on a different host or port

logger = Yell.new :gelf, :host => '127.0.0.1', :port => 1234

# or with the block syntax
logger = Yell.new do |l|
  l.adapter :gelf, :host => '127.0.0.1', :port => 1234
end

logger.info 'Hello World!'

Example: Passing additional keys to the adapter

logger = Yell.new :gelf

logger.info "Hello World", "_thread_id" => Thread.current.object_id, 
                           "_current_user_id" => current_user.id

Copyright © 2012 Rudolf Schmidt, released under the MIT license