LogIt makes it easy to add custom logging to your Ruby or Rails application and has sensible formatting out of the box.
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.
logs_to '/var/log/publishing/publisher.log'
logs_to :publisher, :log_method => :pub_log def publish pub_log.info("doing publish") # do stuff... end
logs_to :publisher, :progname => "Publisher #{Process.pid}"
this will add something like ‘Publisher 1234’ to log entries.
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.
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.
logs_to :publisher, :stdout => true
This will print log messages to stdout in addition to writing them to the log file.
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
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.
$ gem install logit
$ script/plugin install git://github.com/codemariner/logit.git
- 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.
-
-
Allow users to pass in a proc or a name of a method to call to handle formatting of log entries.
-
Add some tests?
LogIt is written and maintained by Scott Sayles.
Copyright © 2010 Scott Sayles. See LICENSE for details.