Class | Merb::Logger |
In: |
merb-core/lib/merb-core/logger.rb
|
Parent: | Extlib::Logger |
Levels | = | Mash.new({ :fatal => 7, :error => 6, :warn => 4, :info => 3, :debug => 0 | NotesRuby (standard) logger levels:
|
auto_flush | [RW] | |
buffer | [R] | |
delimiter | [RW] | |
init_args | [R] | |
level | [RW] | |
log | [R] |
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.
string<String>: | The message to be logged. Defaults to nil. |
String: | The resulting message added to the log file. |
# File merb-core/lib/merb-core/logger.rb, line 141 141: def <<(string = nil) 142: message = "" 143: message << delimiter 144: message << string if string 145: message << "\n" unless message[-1] == ?\n 146: @buffer << message 147: flush if @auto_flush 148: 149: message 150: end
Close and remove the current log object.
# File merb-core/lib/merb-core/logger.rb, line 127 127: def close 128: flush 129: @log.close if @log.respond_to?(:close) && !@log.tty? 130: @log = nil 131: end
Flush the entire buffer to the log object.
# File merb-core/lib/merb-core/logger.rb, line 119 119: def flush 120: return unless @buffer.size > 0 121: @mutex.synchronize do 122: @log.write(@buffer.slice!(0..-1).to_s) 123: end 124: end
Replaces an existing logger with a new one.
log<IO, String>: | Either an IO object or a name of a logfile. |
log_level<~to_sym>: | The log level from, e.g. :fatal or :info. Defaults to :error in the production environment and :debug otherwise. |
delimiter<String>: | Delimiter to use between message sections. Defaults to " ~ ". |
auto_flush<Boolean>: | Whether the log should automatically flush after new messages are added. Defaults to false. |
# File merb-core/lib/merb-core/logger.rb, line 98 98: def set_log(stream = Merb::Config[:log_stream], 99: log_level = Merb::Config[:log_level], 100: delimiter = Merb::Config[:log_delimiter], 101: auto_flush = Merb::Config[:log_auto_flush]) 102: 103: @buffer = [] 104: @delimiter = delimiter 105: @auto_flush = auto_flush 106: 107: if Levels[log_level] 108: @level = Levels[log_level] 109: else 110: @level = log_level 111: end 112: 113: @log = stream 114: @log.sync = true 115: @mutex = (@@mutex[@log] ||= Mutex.new) 116: end
:api: public
# File merb-core/lib/merb-core/logger.rb, line 10 10: def verbose(message, level = :warn) 11: send(level, message) if Merb::Config[:verbose] 12: end