class Slogger::Base
Constants
- SYSLOG_FACILITIES
Syslog Message Facilities:
-
kernel messages
-
user-level messages
-
mail system
-
system daemons
-
security/authorization messages
-
messages generated internally by syslogd
-
line printer subsystem
-
network news subsystem
-
UUCP subsystem
-
clock daemon
-
security/authorization messages
-
FTP daemon
-
NTP subsystem
-
log audit
-
log alert
-
clock daemon (note 2)
-
local use 0 (local0)
-
local use 1 (local1)
-
local use 2 (local2)
-
local use 3 (local3)
-
local use 4 (local4)
-
local use 5 (local5)
-
local use 6 (local6)
-
local use 7 (local7)
-
- SYSLOG_SEVERITIES
Syslog Message Severities:
-
Emergency: system is unusable
-
Alert: action must be taken immediately
-
Critical: critical conditions
-
Error: error conditions
-
Warning: warning conditions
-
Notice: normal but significant condition
-
Informational: informational messages
-
Debug: debug-level messages
-
Attributes
Public Class Methods
To build a Slogger::Base
instance.
app_name
-
The appliaction name to be logged
severity
-
The log severity.
facility
-
A typical syslog facility
custom_severity_levels
-
To be used by children classes. It defaults to
Slogger::Base::SYSLOG_SEVERITIES.
Raises an ArgumentError if app_name
, severity, or facility is nil.
# File lib/slogger/base.rb, line 93 def initialize(app_name, severity, facility, custom_severity_levels=SYSLOG_SEVERITIES) raise_argument_error_to_required_parameter "app_name" unless app_name raise_argument_error_to_required_parameter "severity" unless severity raise_argument_error_to_required_parameter "facility" unless facility raise_argument_error_to_invalid_parameter "severity", "SEVERITIES" unless custom_severity_levels[severity] raise_argument_error_to_invalid_parameter "facility", "FACILITIES" unless SYSLOG_FACILITIES[facility] @app_name = app_name @severity = severity @severity_as_int = custom_severity_levels[severity] @facility = facility @facility_as_int = SYSLOG_FACILITIES[facility] @custom_severity_levels = custom_severity_levels @mutex = Mutex.new end
Public Instance Methods
# File lib/slogger/base.rb, line 117 def log(severity, message, &block) return if SYSLOG_SEVERITIES[severity] > @severity_as_int if block_given? benchmark = Benchmark.measure &block message = "[time: #{benchmark.real}] #{message}" end @mutex.synchronize do Syslog.open(@app_name, Syslog::LOG_PID, @facility_as_int) { |s| s.send severity, '%s', message } end end
# File lib/slogger/base.rb, line 134 def raise_argument_error_to_invalid_parameter(param, options) raise ArgumentError, "The '#{param}' parameter is invalid. Inspect the #{options} constant to know the options." end
# File lib/slogger/base.rb, line 130 def raise_argument_error_to_required_parameter(param) raise ArgumentError, "The '#{param}' parameter is required." end
# File lib/slogger/base.rb, line 110 def severity=(value) raise_argument_error_to_invalid_parameter "severity", "SEVERITIES" unless @custom_severity_levels[value] @severity = value @severity_as_int = @custom_severity_levels[@severity] end