Class: Log4Ruby::StreamAppender

Inherits:
Appender
  • Object
show all
Defined in:
lib/log4ruby/appenders/stream_appender.rb

Overview

Simple appender that can emit to a stream (file, console, socket, etc i.e. anything that responds to the write method)

Direct Known Subclasses

ConsoleAppender, FileAppender

Instance Attribute Summary

Attributes inherited from Appender

#formatter

Instance Method Summary collapse

Methods inherited from Appender

#closed?, #process_log

Constructor Details

#initialize(level, options = {}) ⇒ StreamAppender

New stream appender.

Parameters:

  • level (Log4Ruby::Level)

    the threshold level for the appender.

  • options (Hash) (defaults to: {})

    configuration options. Supported keys are: :formatter - the formatter this appender should use. Uses the DefaultFormatter if not specified. :stream - the stream this appender should log to. required.



18
19
20
21
22
# File 'lib/log4ruby/appenders/stream_appender.rb', line 18

def initialize(level, options = {})
  super(level, options)
  @stream = get_option(options, :stream)
  @emit_header = true
end

Instance Method Details

#closeObject

Overridden to emit the footer. If closed, does nothing.



25
26
27
28
29
30
# File 'lib/log4ruby/appenders/stream_appender.rb', line 25

def close
  emit_footer unless @closed
  @stream.close unless (@stream.nil? or @stream.closed?)

  super
end

Register a block that will serve as the callback for when the footer needs to be generated.



33
34
35
# File 'lib/log4ruby/appenders/stream_appender.rb', line 33

def footer(&block)
  @footer = block
end

#header(&block) ⇒ Object

Register a block that will serve as the callback for when the header needs to be generated.



38
39
40
# File 'lib/log4ruby/appenders/stream_appender.rb', line 38

def header(&block)
  @header = block
end