LogIt
LogIt makes it easy to add custom logging to your Ruby or Rails application and has sensible formatting out of the box.
Usage
Minimal configuration
LogIt adds a class method to any including class to setup a logger method. For example:
require 'logit'
class Publisher
include Logit
logs_to :publisher
def publish
logger.info("doing publish")
# do stuff...
end
end
This will write logs to a publisher.log file in the current directory.
More config options
Writing to a specific directory
logs_to '/var/log/publishing/publisher.log'
Using a different log method name
logs_to :publisher, :log_method => :pub_log
def publish
pub_log.info("doing publish")
# do stuff...
end
Adding a progname to log entries
logs_to :publisher, :progname => "Publisher #{Process.pid}"
this will add something like ‘Publisher 1234’ to log entries.
Configuring log rotation
logs_to :publisher, :shift_age => 5, :shift_size => 102400
this will rotate logs up to a total of 5 files with max size of 102400 bytes.
Flushing each message to the log file immediately
logs_to :publisher, :flush_mode => :immediate
The default behavior is to use the default file buffering. Turning this on will cause each message to be written to the log file immediately.
Also print to stdout
logs_to :publisher, :stdout => true
This will print log messages to stdout in addition to writing them to the log file.
Rails
LogIt automatically detects if you’re running in a Rails environment. If so, it will write to the Rails log directory and appends the environment to the log file name. For example:
RAILS_ROOT/log/publisher_development.log
Example log
09-12-2010 10:27:10 INFO [publisher 4607]: Publishing files to endpoint.
09-12-2010 10:27:15 INFO [publisher 4607]: Publishing completed.
09-12-2010 10:27:56 INFO [publisher 4621]: Publishing files to endpoint.
09-12-2010 10:28:01 ERROR [publisher 4621]: An exception occurred while publishing files: Connection reset by peer.
09-12-2010 10:28:32 INFO [publisher 4634]: Publishing files to endpoint.
09-12-2010 10:28:32 WARN [publisher 4634]: No files available to publish.
Installation
As a Gem
$ gem install logit
As a Rails plugin
$ script/plugin install git://github.com/codemariner/logit.git
Release Notes
- 1.0.4
-
Removed reference to file handler. Allowing Logger to manage this entirely.
-
Added option :log_method that specifies what the name of the log method should be.
-
Reimplemented flush to grab the underlying LogDevice file.
-
Assigning Logger instance to class level variable.
-
- 1.0.3
-
Changed default date format to month-day-year.
-
- 1.0.2
-
Added :flush_mode option. Set this to
:immediate
if you want each message flushed to the log file immediately. -
Added :stdout option. Set this to
true
if you want logs printed to stdout as well.
-
TODO
-
Allow users to pass in a proc or a name of a method to call to handle formatting of log entries.
-
Add some tests?
Credits
LogIt is written and maintained by Scott Sayles.
Copyright
Copyright © 2010 Scott Sayles. See LICENSE for details.