Class: SemanticLogger::Formatters::Syslog
- Defined in:
- lib/semantic_logger/formatters/syslog.rb
Constant Summary collapse
- DEFAULT_LEVEL_MAP =
Default mapping of ruby log levels to syslog log levels
::Syslog::LOG_EMERG - “System is unusable” ::Syslog::LOG_ALERT - “Action needs to be taken immediately” ::Syslog::LOG_CRIT - “A critical condition has occurred” ::Syslog::LOG_ERR - “An error occurred” ::Syslog::LOG_WARNING - “Warning of a possible problem” ::Syslog::LOG_NOTICE - “A normal but significant condition occurred” ::Syslog::LOG_INFO - “Informational message” ::Syslog::LOG_DEBUG - “Debugging information”
{ fatal: ::Syslog::LOG_CRIT, error: ::Syslog::LOG_ERR, warn: ::Syslog::LOG_WARNING, info: ::Syslog::LOG_NOTICE, debug: ::Syslog::LOG_INFO, trace: ::Syslog::LOG_DEBUG }.freeze
Instance Attribute Summary collapse
-
#facility ⇒ Object
Returns the value of attribute facility.
-
#level_map ⇒ Object
Returns the value of attribute level_map.
-
#options ⇒ Object
Returns the value of attribute options.
Attributes inherited from Base
#log_application, #log_host, #precision, #time_format
Instance Method Summary collapse
- #call(log, logger) ⇒ Object
-
#create_syslog_packet(log, message) ⇒ Object
Create Syslog Packet.
-
#initialize(options = {}) ⇒ Syslog
constructor
Create a Syslog Log Formatter.
Methods inherited from Base
Constructor Details
#initialize(options = {}) ⇒ Syslog
Create a Syslog Log Formatter
Parameters:
options: [Integer]
Default: ::Syslog::LOG_PID | ::Syslog::LOG_CONS
Any of the following ( can be logically OR'd together)
::Syslog::LOG_CONS
::Syslog::LOG_NDELAY
::Syslog::LOG_NOWAIT
::Syslog::LOG_ODELAY
::Syslog::LOG_PERROR
::Syslog::LOG_PID
facility: [Integer]
Default: ::Syslog::LOG_USER
Type of program (can be logically OR'd together)
::Syslog::LOG_AUTH
::Syslog::LOG_AUTHPRIV
::Syslog::LOG_CONSOLE
::Syslog::LOG_CRON
::Syslog::LOG_DAEMON
::Syslog::LOG_FTP
::Syslog::LOG_KERN
::Syslog::LOG_LRP
::Syslog::LOG_MAIL
::Syslog::LOG_NEWS
::Syslog::LOG_NTP
::Syslog::LOG_SECURITY
::Syslog::LOG_SYSLOG
::Syslog::LOG_USER
::Syslog::LOG_UUCP
::Syslog::LOG_LOCAL0
::Syslog::LOG_LOCAL1
::Syslog::LOG_LOCAL2
::Syslog::LOG_LOCAL3
::Syslog::LOG_LOCAL4
::Syslog::LOG_LOCAL5
::Syslog::LOG_LOCAL6
::Syslog::LOG_LOCAL7
level_map: [Hash]
Supply a custom map of SemanticLogger levels to syslog levels.
For example, passing in { warn: ::Syslog::LOG_NOTICE }
would result in a log mapping that matches the default level map,
except for :warn, which ends up with a LOG_NOTICE level instead of a
LOG_WARNING one.
Without overriding any parameters, the level map will be
LEVEL_MAP = {
fatal: ::Syslog::LOG_CRIT,
error: ::Syslog::LOG_ERR,
warn: ::Syslog::LOG_WARNING,
info: ::Syslog::LOG_NOTICE,
debug: ::Syslog::LOG_INFO,
trace: ::Syslog::LOG_DEBUG
}
86 87 88 89 90 91 92 93 94 95 96 97 |
# File 'lib/semantic_logger/formatters/syslog.rb', line 86 def initialize( = {}) = .dup = .delete(:options) || (::Syslog::LOG_PID | ::Syslog::LOG_CONS) @facility = .delete(:facility) || ::Syslog::LOG_USER @level_map = DEFAULT_LEVEL_MAP.dup if level_map = .delete(:level_map) @level_map.update(level_map) end # Time is already part of Syslog packet [:time_format] = nil unless .has_key?(:time_format) super() end |
Instance Attribute Details
#facility ⇒ Object
Returns the value of attribute facility.
10 11 12 |
# File 'lib/semantic_logger/formatters/syslog.rb', line 10 def facility @facility end |
#level_map ⇒ Object
Returns the value of attribute level_map.
10 11 12 |
# File 'lib/semantic_logger/formatters/syslog.rb', line 10 def level_map @level_map end |
#options ⇒ Object
Returns the value of attribute options.
10 11 12 |
# File 'lib/semantic_logger/formatters/syslog.rb', line 10 def end |
Instance Method Details
#call(log, logger) ⇒ Object
99 100 101 102 |
# File 'lib/semantic_logger/formatters/syslog.rb', line 99 def call(log, logger) = super(log, logger) create_syslog_packet(log, ) end |
#create_syslog_packet(log, message) ⇒ Object
Create Syslog Packet
105 106 107 108 109 110 111 112 113 114 |
# File 'lib/semantic_logger/formatters/syslog.rb', line 105 def create_syslog_packet(log, ) packet = SyslogProtocol::Packet.new packet.hostname = host packet.facility = facility packet.tag = application.gsub(' ', '') packet.content = packet.time = log.time packet.severity = level_map[log.level] packet.to_s end |