class WEBrick::BasicLog
A generic logging class
Constants
- DEBUG
Debugging error level for messages used in server development or debugging
- ERROR
Error log level which indicates a recoverable error
- FATAL
Fatal log level which indicates a server crash
- INFO
Information log level which indicates possibly useful information
- WARN
Warning log level which indicates a possible problem
Attributes
log-level, messages above this level will be logged
Public Class Methods
Initializes a new logger for log_file
that outputs messages at
level
or higher. log_file
can be a filename, an
IO-like object that responds to << or nil which outputs to $stderr.
If no level is given INFO is chosen by default
# File lib/webrick/log.rb, line 49 def initialize(log_file=nil, level=nil) @level = level || INFO case log_file when String @log = open(log_file, "a+") @log.sync = true @opened = true when NilClass @log = $stderr else @log = log_file # requires "<<". (see BasicLog#log) end end
Public Instance Methods
Synonym for log(INFO, obj.to_s)
# File lib/webrick/log.rb, line 83 def <<(obj) log(INFO, obj.to_s) end
Closes the logger (also closes the log device associated to the logger)
# File lib/webrick/log.rb, line 65 def close @log.close if @opened @log = nil end
Shortcut for logging a DEBUG message
# File lib/webrick/log.rb, line 96 def debug(msg) log(DEBUG, "DEBUG " << format(msg)); end
Will the logger output DEBUG messages?
# File lib/webrick/log.rb, line 107 def debug?; @level >= DEBUG; end
Shortcut for logging an ERROR message
# File lib/webrick/log.rb, line 90 def error(msg) log(ERROR, "ERROR " << format(msg)); end
Will the logger output ERROR messages?
# File lib/webrick/log.rb, line 101 def error?; @level >= ERROR; end
Shortcut for logging a FATAL message
# File lib/webrick/log.rb, line 88 def fatal(msg) log(FATAL, "FATAL " << format(msg)); end
Will the logger output FATAL messages?
# File lib/webrick/log.rb, line 99 def fatal?; @level >= FATAL; end
Shortcut for logging an INFO message
# File lib/webrick/log.rb, line 94 def info(msg) log(INFO, "INFO " << format(msg)); end
Will the logger output INFO messages?
# File lib/webrick/log.rb, line 105 def info?; @level >= INFO; end
Logs data
at level
if the given level is above
the current log level.
# File lib/webrick/log.rb, line 74 def log(level, data) if @log && level <= @level data += "\n" if /\n\Z/ !~ data @log << data end end
Shortcut for logging a WARN message
# File lib/webrick/log.rb, line 92 def warn(msg) log(WARN, "WARN " << format(msg)); end
Will the logger output WARN messages?
# File lib/webrick/log.rb, line 103 def warn?; @level >= WARN; end
Private Instance Methods
Formats arg
for the logger
-
If
arg
is an Exception, it will format the error message and the back trace. -
If
arg
responds to to_str, it will return it. -
Otherwise it will return
arg
.inspect.
# File lib/webrick/log.rb, line 118 def format(arg) if arg.is_a?(Exception) "#{arg.class}: #{AccessLog.escape(arg.message)}\n\t" << arg.backtrace.join("\n\t") << "\n" elsif arg.respond_to?(:to_str) AccessLog.escape(arg.to_str) else arg.inspect end end