Skip to content

HTTPS clone URL

Subversion checkout URL

You can clone with HTTPS or Subversion.

Download ZIP
branch: threads

This branch is 87 commits behind master

Fetching latest commit…

Cannot retrieve the latest commit at this time

Failed to load latest commit information.
lib
spec
Gemfile
Gemfile.lock
LICENSE
README.md
Rakefile
logglier.gemspec

README.md

Overview

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

Can be used in place of Ruby's Logger (http://www.ruby-doc.org/stdlib/libdoc/logger/rdoc/)

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

Usage

require 'logglier'

log = Logglier.new(<INPUT URL>)

log.info("hello from logglier")

With Rails

config/environments/production.rb

RailsApplication::Application.configure do
  config.logger = Logglier.new(<INPUT URL>)
end

Input URLs

HTTP Inputs

Logglier.new('https://logs.loggly.com/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:

Logglier.new('https://logs.loggly.com/inputs/<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.

Example:

Logglier.new('https://logs.loggly.com/inputs/<id>',
             :threaded => true)

Syslog TCP/UDP Inputs

Logglier.new('[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 http://www.faqs.org/rfcs/rfc3164.html

Logging

Logglier.new returns a ruby Logger object, so take a look at:

http://www.ruby-doc.org/stdlib/libdoc/logger/rdoc/

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"

Bugs

https://github.com/freeformz/logglier/issues

Pull requests welcome

TODO

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