Parent

Class Index [+]

Quicksearch

Merb::Logger

Merb::Logger = Extlib::Logger

Constants

Levels

Notes

Ruby (standard) logger levels:

:fatal

An unhandleable error that results in a program crash

:error

A handleable error condition

:warn

A warning

:info

generic (useful) information about system operation

:debug

low-level information for developers

Attributes

level[RW]
delimiter[RW]
auto_flush[RW]
buffer[R]
log[R]
init_args[R]

Public Class Methods

new(*args) click to toggle source

To initialize the logger you create a new object, proxies to set_log.

Parameters

*args

Arguments to create the log from. See set_logs for specifics.

    # File lib/merb-core/logger.rb, line 84
84:     def initialize(*args)
85:       set_log(*args)
86:     end

Public Instance Methods

<<(string = nil) click to toggle source

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.

Parameters

string

The message to be logged. Defaults to nil.

Returns

String

The resulting message added to the log file.

     # File lib/merb-core/logger.rb, line 143
143:     def <<(string = nil)
144:       message = ""
145:       message << delimiter
146:       message << string if string
147:       message << "\n" unless message[1] == \n\
148:       @buffer << message
149:       flush if @auto_flush
150: 
151:       message
152:     end
Also aliased as: push
close() click to toggle source

Close and remove the current log object.

     # File lib/merb-core/logger.rb, line 129
129:     def close
130:       flush
131:       @log.close if @log.respond_to?(:close) && !@log.tty?
132:       @log = nil
133:     end
flush() click to toggle source

Flush the entire buffer to the log object.

     # File lib/merb-core/logger.rb, line 121
121:     def flush
122:       return unless @buffer.size > 0
123:       @mutex.synchronize do
124:         @log.write(@buffer.slice!(0..1).join(''))
125:       end
126:     end
push(string = nil) click to toggle source
Alias for: <<
set_log(stream = Merb::Config[:log_stream], log_level = Merb::Config[:log_level], delimiter = Merb::Config[:log_delimiter], auto_flush = Merb::Config[:log_auto_flush]) click to toggle source

Replaces an existing logger with a new one.

Parameters

stream

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

Delimiter to use between message sections. Defaults to “ ~ “.

auto_flush

Whether the log should automatically flush after new messages are added. Defaults to false.

     # File lib/merb-core/logger.rb, line 100
100:     def set_log(stream = Merb::Config[:log_stream],
101:       log_level = Merb::Config[:log_level],
102:       delimiter = Merb::Config[:log_delimiter],
103:       auto_flush = Merb::Config[:log_auto_flush])
104: 
105:       @buffer                   = []
106:       @delimiter                = delimiter
107:       @auto_flush               = auto_flush
108: 
109:       if Levels[log_level]
110:         @level                  = Levels[log_level]
111:       else
112:         @level                  = log_level
113:       end
114: 
115:       @log                      = stream
116:       @log.sync                 = true
117:       @mutex = (@@mutex[@log] ||= Mutex.new)
118:     end
verbose(message, level = :warn) click to toggle source

:api: public

    # File lib/merb-core/logger.rb, line 10
10:   def verbose(message, level = :warn)
11:     send(level, message) if Merb::Config[:verbose]
12:   end
verbose!(message, level = :warn) click to toggle source

:api: public

   # File lib/merb-core/logger.rb, line 5
5:   def verbose!(message, level = :warn)
6:     send("#{level}!", message) if Merb::Config[:verbose]
7:   end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.