Class: Logging::Appenders::IO
- Inherits:
-
Logging::Appender
- Object
- Logging::Appender
- Logging::Appenders::IO
- Defined in:
- lib/gems/logging-0.9.4/lib/logging/appenders/io.rb
Overview
This class provides an Appender that can write to any IO stream configured for writing.
Direct Known Subclasses
Instance Attribute Summary
Attributes inherited from Logging::Appender
Instance Method Summary collapse
-
#close(*args) ⇒ Object
call-seq: close( footer = true ).
-
#flush ⇒ Object
call-seq: flush.
-
#initialize(name, io, opts = {}) ⇒ IO
constructor
call-seq: IO.new( name, io ) IO.new( name, io, :layout => layout ).
Methods inherited from Logging::Appender
#<<, [], []=, #append, #closed?, #inspect, remove, stderr, stdout
Constructor Details
#initialize(name, io, opts = {}) ⇒ IO
16 17 18 19 20 21 22 23 24 |
# File 'lib/gems/logging-0.9.4/lib/logging/appenders/io.rb', line 16 def initialize( name, io, opts = {} ) unless io.respond_to? :print raise TypeError, "expecting an IO object but got '#{io.class.name}'" end @io = io @io.sync = true if @io.respond_to?('sync') rescue nil super(name, opts) end |
Instance Method Details
#close(*args) ⇒ Object
call-seq:
close( = true )
Close the appender and writes the layout footer to the logging destination if the footer flag is set to true. Log events will no longer be written to the logging destination after the appender is closed.
34 35 36 37 38 39 40 41 42 |
# File 'lib/gems/logging-0.9.4/lib/logging/appenders/io.rb', line 34 def close( *args ) return self if @io.nil? super(*args) io, @io = @io, nil io.close unless [STDIN, STDERR, STDOUT].include?(io) rescue IOError => err ensure return self end |
#flush ⇒ Object
call-seq:
flush
Call flush to force an appender to write out any buffered log events. Similar to IO#flush, so use in a similar fashion.
50 51 52 53 54 |
# File 'lib/gems/logging-0.9.4/lib/logging/appenders/io.rb', line 50 def flush return self if @io.nil? @io.flush self end |