Extended maintenance of Ruby 1.9.3 ended on February 23, 2015. Read more
A generic logging class
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 webrick/log.rb, line 30
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
Synonym for log(INFO, obj.to_s)
# File webrick/log.rb, line 64
def <<(obj)
log(INFO, obj.to_s)
end
Closes the logger (also closes the log device associated to the logger)
# File webrick/log.rb, line 46
def close
@log.close if @opened
@log = nil
end
Shortcut for logging a DEBUG message
# File webrick/log.rb, line 77
def debug(msg) log(DEBUG, "DEBUG " << format(msg)); end
Will the logger output DEBUG messages?
# File webrick/log.rb, line 88
def debug?; @level >= DEBUG; end
Shortcut for logging an ERROR message
# File webrick/log.rb, line 71
def error(msg) log(ERROR, "ERROR " << format(msg)); end
Will the logger output ERROR messages?
# File webrick/log.rb, line 82
def error?; @level >= ERROR; end
Shortcut for logging a FATAL message
# File webrick/log.rb, line 69
def fatal(msg) log(FATAL, "FATAL " << format(msg)); end
Will the logger output FATAL messages?
# File webrick/log.rb, line 80
def fatal?; @level >= FATAL; end
Shortcut for logging an INFO message
# File webrick/log.rb, line 75
def info(msg) log(INFO, "INFO " << format(msg)); end
Will the logger output INFO messages?
# File webrick/log.rb, line 86
def info?; @level >= INFO; end
Logs data at level if the given level is above
the current log level.
# File webrick/log.rb, line 55
def log(level, data)
if @log && level <= @level
data += "\n" if /\n\Z/ !~ data
@log << data
end
end