| 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