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