lib/rubix/log.rb in rubix-0.0.8 vs lib/rubix/log.rb in rubix-0.0.9
- old
+ new
@@ -1,24 +1,43 @@
require 'logger'
module Rubix
+ # Set the Rubix logger. Set to +nil+ to disable all logging.
+ #
+ # @param [Logger] l the logger to use
def self.logger= l
@logger = l
end
+ # The current Rubix logger.
+ #
+ # @return [Logger, nil]
def self.logger
return @logger unless @logger.nil?
@logger = default_logger
end
+ # The default logger.
+ #
+ # @return [Logger]
def self.default_logger
@logger = Logger.new(default_log_path)
@logger.level = default_log_severity
@logger
end
+ # The default logger's severity.
+ #
+ # Will attempt to read from
+ #
+ # - <tt>Settings[:log_level]</tt> if <tt>Settings</tt> is defined (see Configliere[http://github.com/infochimps/configliere])
+ # - the <tt>RUBIX_LOG_LEVEL</tt> environment variable if defined
+ #
+ # The default is 'info'.
+ #
+ # @return [Fixnum]
def self.default_log_severity
case
when defined?(Settings) && Settings[:log_level]
Logger.const_get(Settings[:log_level].to_s.strip)
when ENV["RUBIX_LOG_LEVEL"]
@@ -32,10 +51,18 @@
rescue NameError => e
return Logger::INFO
end
end
+ # The default logger's path.
+ #
+ # Will attempt to read from
+ #
+ # - <tt>Settings[:log]</tt> if <tt>Settings</tt> is defined (see Configliere[http://github.com/infochimps/configliere])
+ # - the <tt>RUBIX_LOG_PATH</tt> environment variable if defined
+ #
+ # Defaults to writing <tt>stdout</tt>.
def self.default_log_path
case
when defined?(Settings) && Settings[:log]
Settings[:log]
when ENV["RUBIX_LOG_PATH"] == '-'
@@ -44,32 +71,49 @@
ENV["RUBIX_LOG_PATH"]
else
$stdout
end
end
-
+
+ # This module can be included by any class to enable logging to the
+ # <tt>Rubix.logger</tt>.
module Logs
+ # Write a log message with severity +debug+.
+ #
+ # @param [Array<String>] args
def debug *args
return unless Rubix.logger
Rubix.logger.log(Logger::DEBUG, args.join(' '))
end
+ # Write a log message with severity +info+.
+ #
+ # @param [Array<String>] args
def info *args
return unless Rubix.logger
Rubix.logger.log(Logger::INFO, args.join(' '))
end
+ # Write a log message with severity +warn+.
+ #
+ # @param [Array<String>] args
def warn *args
return unless Rubix.logger
Rubix.logger.log(Logger::WARN, args.join(' '))
end
+ # Write a log message with severity +error+.
+ #
+ # @param [Array<String>] args
def error *args
return unless Rubix.logger
Rubix.logger.log(Logger::ERROR, args.join(' '))
end
+ # Write a log message with severity +fatal+.
+ #
+ # @param [Array<String>] args
def fatal *args
return unless Rubix.logger
Rubix.logger.log(Logger::FATAL, args.join(' '))
end