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

#encoding, #filters, #layout, #level, #name

Instance Method Summary collapse

Methods inherited from IO

#close

Methods included from Buffering

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

Methods inherited from Logging::Appender

#<<, #_to_s, #add_filters, #allow, #append, #close, #closed?, #flush, #off?, #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
# 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

Instance Method Details

#reopenObject

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.


38
39
40
41
42
43
44
45
# File 'lib/logging/appenders/console.rb', line 38

def reopen
  @mutex.synchronize {
    flush if defined? @io && @io
    @io = open_fd
  }
  super
  self
end