Class: Logging::Appenders::Console
- Inherits:
-
IO
- Object
- Logging::Appender
- IO
- Logging::Appenders::Console
- 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
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
-
#initialize(*args) ⇒ Console
constructor
call-seq: Stdout.new( name = ‘stdout’ ) Stderr.new( :layout => layout ) Stdout.new( name = ‘stdout’, :level => ‘info’ ).
-
#reopen ⇒ Object
Reopen the connection to the underlying logging destination.
Methods inherited from IO
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
#reopen ⇒ Object
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 |