Skip to content
This repository
branch: master

bump version

latest commit 3a73e9f2b3
Edward Muller authored
Octocat-spinner-32 lib bump version November 01, 2013
Octocat-spinner-32 spec test fix April 19, 2013
Octocat-spinner-32 .gitignore fixups June 17, 2011
Octocat-spinner-32 .travis.yml try 2.0.0 September 11, 2013
Octocat-spinner-32 Gemfile use multi_json February 08, 2013
Octocat-spinner-32 LICENSE add a license March 04, 2011
Octocat-spinner-32 README April 19, 2013
Octocat-spinner-32 Rakefile initial commit February 26, 2011
Octocat-spinner-32 logglier.gemspec "Fix" gemspec and bump version September 11, 2013


Build Status

Send logged messages to Loggly using either the HTTP API or Syslog/UDP.

Can be used in place of Ruby's Logger (

In fact, it (currently) returns an instance of Logger.


require 'logglier'

log =<INPUT URL>)"hello from logglier")

With Rails


RailsApplication::Application.configure do
  config.logger =<INPUT URL>)

Input URLs

HTTP Inputs'<id>')

The id is provided by loggly, look at the input's details page To make sure the http client doesn't block too long read_timeout and open_timeout are set to 2 seconds by default. This can be overridden like so:'<id>',
             :read_timeout => <#>,
             :open_timeout => <#> )

Threaded Delivery

Creating a new Logglier instance, pointed at a http input, with the :threaded => true option will tell Logglier to deliver log messages for that logger in a seperate thread. Each new Logglier instance gets it's own delivery thread and those threads are joined at exit to ensure log message delivery.

             :threaded => true)

JSON Formatting

add the ':format => :json' when creating a new Logglier instance. Make sure to use a HTTP input that has JSON enabled. Can also be used with threaded delivery.

             :format => :json)

Logglier uses MultiJson to delegate the choice of JSON libraries to you, but I recommend using Yajl, just require the json gem of your choice before logglier.

Syslog TCP/UDP Inputs'[udp|tcp]://<hostname>:<port>/<facility>')

The facility is optional and defaults to 16 (local0) if none is specified. Facilities are just integers from 0 to 23, see

Logging returns a ruby Logger object, so take a look at:

The Logger's logdev has some special format handling though.

Logging a string

log.warn "test"

Will produce the following log message in Loggly:

"<Date> severity=WARN, test"

Logging a Hash

log.warn :boom => :box, :bar => :soap

Will produce the following log message in Loggly:

"<Date> severity=WARN, boom=box, bar=soap"


Pull requests welcome


  • Support ActiveSupport Notifications for newer rails
  • Alternative https implementations (Typheous, Excon, etc). May be faster?
  • EM Integration?
Something went wrong with that request. Please try again.