# 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

level[RW]

log-level, messages above this level will be logged

### Public Class Methods

new(log_file=nil, level=nil) click to toggle source

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 50
    def initialize(log_file=nil, level=nil)
      @level = level || INFO
      case log_file
      when String
        @log = File.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

<<(obj) click to toggle source

Synonym for log(`INFO`, obj.to_s)

    # File lib/webrick/log.rb, line 84
    def <<(obj)
      log(INFO, obj.to_s)
    end

close() click to toggle source

Closes the logger (also closes the log device associated to the logger)

    # File lib/webrick/log.rb, line 66
    def close
      @log.close if @opened
      @log = nil
    end

debug(msg) click to toggle source

Shortcut for logging a `DEBUG` message

    # File lib/webrick/log.rb, line 97
    def debug(msg) log(DEBUG, "DEBUG " << format(msg)); end

debug?() click to toggle source

Will the logger output `DEBUG` messages?

    # File lib/webrick/log.rb, line 108
    def debug?; @level >= DEBUG; end

error(msg) click to toggle source

Shortcut for logging an `ERROR` message

    # File lib/webrick/log.rb, line 91
    def error(msg) log(ERROR, "ERROR " << format(msg)); end

error?() click to toggle source

Will the logger output `ERROR` messages?

    # File lib/webrick/log.rb, line 102
    def error?; @level >= ERROR; end

fatal(msg) click to toggle source

Shortcut for logging a `FATAL` message

    # File lib/webrick/log.rb, line 89
    def fatal(msg) log(FATAL, "FATAL " << format(msg)); end

fatal?() click to toggle source

Will the logger output `FATAL` messages?

    # File lib/webrick/log.rb, line 100
    def fatal?; @level >= FATAL; end

info(msg) click to toggle source

Shortcut for logging an `INFO` message

    # File lib/webrick/log.rb, line 95
    def info(msg)  log(INFO,  "INFO  " << format(msg)); end

info?() click to toggle source

Will the logger output `INFO` messages?

    # File lib/webrick/log.rb, line 106
    def info?;  @level >= INFO; end

log(level, data) click to toggle source

Logs `data` at `level` if the given level is above the current log level.

    # File lib/webrick/log.rb, line 75
    def log(level, data)
      if @log && level <= @level
        data += "\n" if /\n\Z/ !~ data
        @log << data
      end
    end

warn(msg) click to toggle source

Shortcut for logging a `WARN` message

    # File lib/webrick/log.rb, line 93
    def warn(msg)  log(WARN,  "WARN  " << format(msg)); end

warn?() click to toggle source

Will the logger output `WARN` messages?

    # File lib/webrick/log.rb, line 104
    def warn?;  @level >= WARN; end

### Private Instance Methods

format(arg) click to toggle source

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 119
    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