Class: Logging::Appenders::Console

Inherits:
IO show all
Defined in:
lib/logging/appenders/console.rb

Overview

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.

Constant Summary

Constants included from Buffering

Buffering::DEFAULT_BUFFER_SIZE

Instance Attribute Summary

Attributes inherited from IO

#close_method

Attributes included from Buffering

#async, #auto_flushing, #buffer, #flush_period, #write_size

Attributes inherited from Logging::Appender

#filters, #layout, #level, #name

Instance Method Summary collapse

Methods inherited from IO

#close

Methods included from Buffering

#clear!, #close, #flush, #flush_period?, #immediate_at=, #reopen

Methods inherited from Logging::Appender

#<<, #_to_s, #add_filters, #allow, #append, #close, #closed?, #encoding, #encoding=, #flush, #off?, #reopen, #to_s

Constructor Details

#initialize(*args) ⇒ Console

call-seq:

Stdout.new( name = 'stdout' )
Stderr.new( :layout => layout )
Stdout.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


23
24
25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/logging/appenders/console.rb', line 23

def initialize( *args )
  name = self.class.name.split("::").last.downcase
  io   = Object.const_get(name.upcase)

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

  opts[:encoding] = io.external_encoding if io.respond_to? :external_encoding

  super(name, io, opts)
rescue NameError
  raise RuntimeError, "Please do not use the `Logging::Appenders::Console` class directly - " +
                      "use `Logging::Appenders::Stdout` and `Logging::Appenders::Stderr` instead"
end