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
mapping from Log4r default levels to syslog, by string name “DEBUG” => “DEBUG“
"INFO" => "INFO" "WARN" => "WARN" "ERROR" => "ERROR" "FATAL" => "FATAL"
There are 3 hash arguments
syslog ident, defaults to _name
syslog logopt, defaults to LOG_PID | LOG_CONS
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
# 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
# File lib/log4r/outputter/syslogoutputter.rb, line 77 77: def closed? 78: return !@syslog.opened? 79: end
# File lib/log4r/outputter/syslogoutputter.rb, line 110 110: def get_levels_map() 111: return @levels_map 112: end
A single hash argument that maps custom names to syslog names
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
# 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.
Generated with the Darkfish Rdoc Generator 1.1.6.