Class: Log4Ruby::Appender

Inherits:
Object
  • Object
show all
Defined in:
lib/log4ruby/appender.rb

Overview

Base class for appenders.

Direct Known Subclasses

NilAppender, StreamAppender

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

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

New appender. This class should be treated as an abstract base class and should not be initialised directly.

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.



20
21
22
23
24
25
26
# File 'lib/log4ruby/appender.rb', line 20

def initialize(level, options = {})
  @level = level
  @formatter = get_option(options, :formatter, false, DefaultFormatter.new)
  @closed = false

  at_exit { close }
end

Instance Attribute Details

#formatter=(value) ⇒ Object (writeonly)

Set the formatter this appender uses.



13
14
15
# File 'lib/log4ruby/appender.rb', line 13

def formatter=(value)
  @formatter = value
end

Instance Method Details

#closeTrueClass

Closes this appender. Logs will not be emitted by this appender any longer. If the appender is already closed, this method should not do anything.

Returns:

  • (TrueClass)

    Always true.



32
33
34
# File 'lib/log4ruby/appender.rb', line 32

def close
  @closed = true
end

#closed?TrueClass, FalseClass

Check if this appender is closed.

Returns:

  • (TrueClass, FalseClass)

    true if the appender is closed.



39
40
41
# File 'lib/log4ruby/appender.rb', line 39

def closed?
  @closed
end

#process_log(log) ⇒ Object

Process the log item.

Parameters:



46
47
48
49
50
51
52
53
# File 'lib/log4ruby/appender.rb', line 46

def process_log(log)
  return if self.closed?
  return if log[:level] < @level

  # Format the log item and emit it.
  string = @formatter.format(log)
  emit(string, log)
end