class Logging::Appenders::Console

This class is provides an Appender base class for writing to the standard IO stream - STDOUT and STDERR. This class should not be instantiated directly. The `Stdout` and `Stderr` subclasses should be used.

Public Class Methods

new( name = 'stdout' ) click to toggle source
new( :layout → layout )
new( name = 'stdout', :level → 'info' )

Creates a new Stdout/Stderr Appender. The name 'stdout'/'stderr' will be used unless another is given. Optionally, a layout can be given for the appender to use (otherwise a basic appender will be created) and a log level can be specified.

Options:

:layout => the layout to use when formatting log events
:level  => the level at which to log
Calls superclass method Logging::Appenders::IO::new
# File lib/logging/appenders/console.rb, line 23
def initialize( *args )
  name = self.class.name.split("::").last.downcase

  opts = args.last.is_a?(Hash) ? args.pop : {}
  name = args.shift unless args.empty?

  io = open_fd
  opts[:encoding] = io.external_encoding

  super(name, io, opts)
end

Public Instance Methods

reopen() click to toggle source

Reopen the connection to the underlying logging destination. If the connection is currently closed then it will be opened. If the connection is currently open then it will be closed and immediately reopened.

Calls superclass method Logging::Appenders::IO#reopen
# File lib/logging/appenders/console.rb, line 38
def reopen
  @mutex.synchronize {
    flush if defined? @io && @io
    @io = open_fd
  }
  super
  self
end

Private Instance Methods

open_fd() click to toggle source
# File lib/logging/appenders/console.rb, line 49
def open_fd
  case self.class.name
  when "Logging::Appenders::Stdout"; STDOUT
  when "Logging::Appenders::Stderr"; STDERR
  else
    raise RuntimeError, "Please do not use the `Logging::Appenders::Console` class directly - " +
                        "use `Logging::Appenders::Stdout` and `Logging::Appenders::Stderr` instead" +
                        " [class #{self.class.name}]"
  end
end