Included Modules

Log4r::SyslogOutputter

Constants

SYSLOG_LEVELS_MAP

maps default log4r levels to syslog priorities (logevents never see ALL and OFF) SYSLOG Levels are:

 "DEBUG"  => Syslog::LOG_DEBUG
 "INFO"   => Syslog::LOG_INFO
 "NOTICE" => Syslog::LOG_NOTICE
 "WARN"   => Syslog::LOG_WARN
 "ERROR"  => Syslog::LOG_ERROR
 "FATAL"  => Syslog::LOG_FATAL
 "ALERT"  => Syslog::LOG_ALERT
 "EMERG"  => Syslog::LOG_EMERG
SYSLOG_LOG4R_MAP

mapping from Log4r default levels to syslog, by string name “DEBUG” => “DEBUG“

 "INFO"   => "INFO" 
 "WARN"   => "WARN"
 "ERROR"  => "ERROR" 
 "FATAL"  => "FATAL"

Public Class Methods

new(_name, hash={}) click to toggle source

There are 3 hash arguments

:ident

syslog ident, defaults to _name

:logopt

syslog logopt, defaults to LOG_PID | LOG_CONS

:facility

syslog facility, defaults to LOG_USER

    # File lib/log4r/outputter/syslogoutputter.rb, line 64
64:     def initialize(_name, hash={})
65:       super(_name, hash)
66:       ident = (hash[:ident] or hash['ident'] or _name)
67:       logopt = (hash[:logopt] or hash['logopt'] or LOG_PID | LOG_CONS).to_i
68:       facility = (hash[:facility] or hash['facility'] or LOG_USER).to_i
69:       map_levels_by_name_to_syslog()
70:       if ( Syslog.opened? ) then
71:         Logger.log_internal { "Syslog already initialized, to alter, " +
72:           "you must close first"}
73:       end
74:       @syslog = ( Syslog.opened? ) ? Syslog : Syslog.open(ident, logopt, facility)
75:     end

Public Instance Methods

close() click to toggle source
    # File lib/log4r/outputter/syslogoutputter.rb, line 81
81:     def close
82:       @syslog.close unless @syslog.nil?
83:       @level = OFF
84:       OutputterFactory.create_methods(self)
85:       Logger.log_internal {"Outputter '#{@name}' closed Syslog and set to OFF"}
86:     end
closed?() click to toggle source
    # File lib/log4r/outputter/syslogoutputter.rb, line 77
77:     def closed?
78:       return !@syslog.opened?
79:     end
get_levels_map() click to toggle source
     # File lib/log4r/outputter/syslogoutputter.rb, line 110
110:     def get_levels_map()
111:       return @levels_map
112:     end
map_levels_by_name_to_syslog( lmap = SYSLOG_LOG4R_MAP ) click to toggle source

A single hash argument that maps custom names to syslog names

levels_map

A map that will create a linkage between levels in a hash and underlying syslog levels. By default, these are direct mapping of the log4r levels (e.g. “DEBUG” => “DEBUG”) If you have defined your own custom levels, you should provide this underlying mapping, otherwise all messages will be mapped to the underlying syslog level of INFO by default. e.g. You have created custom levels called: Configurator.custom_levels "HIGH", "MEDIUM", "LOW" To map these to ‘equivilent’ syslog levels, after instantiatin a syslogoutputter: SyslogOutputter.map_levels_by_name_to_syslog( { "HIGH" => "ALERT", "MEDIUM" => "WARN", "LOW" => "INFO" } )

     # File lib/log4r/outputter/syslogoutputter.rb, line 106
106:     def map_levels_by_name_to_syslog( lmap = SYSLOG_LOG4R_MAP )
107:       @levels_map = lmap
108:     end

Private Instance Methods

canonical_log(logevent) click to toggle source
     # File lib/log4r/outputter/syslogoutputter.rb, line 116
116:     def canonical_log(logevent)
117:       pri = SYSLOG_LEVELS_MAP[@levels_map[LNAMES[logevent.level]]] rescue pri = LOG_INFO
118:       o = format(logevent)
119:       if o.kind_of? Exception then
120:         msg = "#{o.class} at (#{o.backtrace[0]}): #{o.message}"
121:       elsif o.respond_to? :to_str then
122:         msg = o.to_str
123:       else
124:         msg = o.inspect
125:       end
126: 
127:       @syslog.log(pri, '%s', msg)
128:     end

Disabled; run with --debug to generate this.

[Validate]

Generated with the Darkfish Rdoc Generator 1.1.6.