Ruby (standard) logger levels:
An unhandleable error that results in a program crash
A handleable error condition
A warning
generic (useful) information about system operation
low-level information for developers
To initialize the logger you create a new object, proxies to set_log.
Arguments to create the log from. See set_logs for specifics.
# File lib/harp-runtime/logger.rb, line 92 def initialize(*args) @init_args = args set_log(*args) self.auto_flush = true Harp.logger = self end
Appends a message to the log. The methods yield to an optional block and the output of this block will be appended to the message.
The message to be logged. Defaults to nil.
The resulting message added to the log file.
# File lib/harp-runtime/logger.rb, line 145 def <<(string = nil) message = "" message << delimiter message << string if string message << "\n" unless message[-1] == \n\ @buffer << message flush if @auto_flush message end
Close and remove the current log object.
# File lib/harp-runtime/logger.rb, line 131 def close flush @log.close if @log.respond_to?(:close) && !@log.tty? @log = nil end
Flush the entire buffer to the log object.
# File lib/harp-runtime/logger.rb, line 125 def flush return unless @buffer.size > 0 @log.write(@buffer.slice!(0..-1).join) end
Replaces an existing logger with a new one.
Either an IO object or a name of a logfile.
The log level from, e.g. :fatal or :info. Defaults to :error in the production environment and :debug otherwise.
Delimiter to use between message sections. Defaults to " ~ ".
Whether the log should automatically flush after new messages are added. Defaults to false.
# File lib/harp-runtime/logger.rb, line 111 def set_log(log, log_level = nil, delimiter = " ~ ", auto_flush = false) if log_level && Levels[log_level.to_sym] @level = Levels[log_level.to_sym] else @level = Levels[:debug] end @buffer = [] @delimiter = delimiter @auto_flush = auto_flush initialize_log(log) end