Class: Syslogger
- Inherits:
-
Object
- Object
- Syslogger
- Defined in:
- lib/syslogger.rb
Constant Summary collapse
- MAPPING =
{ Logger::DEBUG => Syslog::LOG_DEBUG, Logger::INFO => Syslog::LOG_INFO, Logger::WARN => Syslog::LOG_NOTICE, Logger::ERROR => Syslog::LOG_WARNING, Logger::FATAL => Syslog::LOG_ERR, Logger::UNKNOWN => Syslog::LOG_ALERT }
Instance Attribute Summary collapse
-
#facility ⇒ Object
readonly
Returns the value of attribute facility.
-
#ident ⇒ Object
readonly
Returns the value of attribute ident.
-
#level ⇒ Object
Returns the value of attribute level.
-
#options ⇒ Object
readonly
Returns the value of attribute options.
Instance Method Summary collapse
-
#<<(msg) ⇒ Object
Logs a message at the Logger::INFO level.
-
#add(severity, message = nil, progname = nil, &block) ⇒ Object
Low level method to add a message.
-
#initialize(ident = $0, options = Syslog::LOG_PID | Syslog::LOG_CONS, facility = nil) ⇒ Syslogger
constructor
- Initializes default options for the logger
ident
-
the name of your program [default=$0].
- Initializes default options for the logger
Constructor Details
#initialize(ident = $0, options = Syslog::LOG_PID | Syslog::LOG_CONS, facility = nil) ⇒ Syslogger
Initializes default options for the logger
ident
-
the name of your program [default=$0].
options
-
syslog options [default=
Syslog::LOG_PID | Syslog::LOG_CONS
].Correct values are:
LOG_CONS : writes the message on the console if an error occurs when sending the message; LOG_NDELAY : no delay before sending the message; LOG_PERROR : messages will also be written on STDERR; LOG_PID : adds the process number to the message (just after the program name)
facility
-
the syslog facility [default=nil] Correct values include:
Syslog::LOG_DAEMON Syslog::LOG_USER Syslog::LOG_SYSLOG Syslog::LOG_LOCAL2 Syslog::LOG_NEWS etc.
Usage:
logger = Syslogger.new("my_app", Syslog::LOG_PID | Syslog::LOG_CONS, Syslog::LOG_LOCAL0)
logger.level = Logger::INFO # use Logger levels
logger.warn "warning message"
logger.debug "debug message"
39 40 41 42 43 44 |
# File 'lib/syslogger.rb', line 39 def initialize(ident = $0, = Syslog::LOG_PID | Syslog::LOG_CONS, facility = nil) @ident = ident @options = || (Syslog::LOG_PID | Syslog::LOG_CONS) @facility = facility @level = Logger::INFO end |
Instance Attribute Details
#facility ⇒ Object (readonly)
Returns the value of attribute facility.
5 6 7 |
# File 'lib/syslogger.rb', line 5 def facility @facility end |
#ident ⇒ Object (readonly)
Returns the value of attribute ident.
5 6 7 |
# File 'lib/syslogger.rb', line 5 def ident @ident end |
#level ⇒ Object
Returns the value of attribute level.
5 6 7 |
# File 'lib/syslogger.rb', line 5 def level @level end |
#options ⇒ Object (readonly)
Returns the value of attribute options.
5 6 7 |
# File 'lib/syslogger.rb', line 5 def @options end |
Instance Method Details
#<<(msg) ⇒ Object
Logs a message at the Logger::INFO level.
56 57 58 |
# File 'lib/syslogger.rb', line 56 def <<(msg) add(Logger::INFO, msg) end |
#add(severity, message = nil, progname = nil, &block) ⇒ Object
Low level method to add a message.
severity
-
the level of the message. One of Logger::DEBUG, Logger::INFO, Logger::WARN, Logger::ERROR, Logger::FATAL, Logger::UNKNOWN
message
-
the message string. If nil, the method will call the block and use the result as the message string.
progname
-
optionally, a overwrite the program name that appears in the log message.
64 65 66 67 68 69 70 |
# File 'lib/syslogger.rb', line 64 def add(severity, = nil, progname = nil, &block) progname ||= @ident Syslog.open(progname, @options, @facility) { |s| s.mask = Syslog::LOG_UPTO(MAPPING[@level]) s.log(MAPPING[severity], ( || block.call).to_s) } end |