Class: Syslog::Logger
Relationships & Source Files | |
Namespace Children | |
Classes:
| |
Inherits: | Object |
Defined in: | lib/syslog/logger.rb |
Overview
Logger
is a Logger
work-alike that logs via syslog instead of to a file. You can use Logger
to aggregate logs between multiple machines.
By default, Logger
uses the program name ‘ruby’, but this can be changed via the first argument to .new.
NOTE! You can only set the Logger
program name when you initialize Logger
for the first time. This is a limitation of the way Logger
uses syslog (and in some ways, a limitation of the way syslog(3) works). Attempts to change Syslog::Logger’s program name after the first initialization will be ignored.
Example
The following will log to syslogd on your local machine:
require 'syslog/logger'
log = Syslog::Logger.new 'my_program'
log.info 'this line will be logged via syslog(3)'
Also the facility may be set to specify the facility level which will be used:
log.info 'this line will be logged using Syslog default facility level'
log_local1 = Syslog::Logger.new 'my_program', Syslog::LOG_LOCAL1
log_local1.info 'this line will be logged using local1 facility level'
You may need to perform some syslog.conf setup first. For a BSD machine add the following lines to /etc/syslog.conf:
!my_program
*.* /var/log/my_program.log
Then touch /var/log/my_program.log and signal syslogd with a HUP (killall -HUP syslogd, on FreeBSD).
If you wish to have logs automatically roll over and archive, see the newsyslog.conf(5) and newsyslog(8) man pages.
Constant Summary
-
LEVEL_MAP =
Maps Logger warning types to syslog(3) warning types.
Messages from Ruby applications are not considered as critical as messages from other system daemons using syslog(3), so most messages are reduced by one level. For example, a fatal message for Ruby’s
Logger
is considered an error for syslog(3).{ ::Logger::UNKNOWN => Syslog::LOG_ALERT, ::Logger::FATAL => Syslog::LOG_ERR, ::Logger::ERROR => Syslog::LOG_WARNING, ::Logger::WARN => Syslog::LOG_NOTICE, ::Logger::INFO => Syslog::LOG_INFO, ::Logger::DEBUG => Syslog::LOG_DEBUG, }
-
VERSION =
The version of
Logger
you are using.'2.1.0'
Class Attribute Summary
-
.syslog
rw
Returns the internal
::Syslog
object that is initialized when the first instance is created. -
.syslog=(syslog)
rw
Specifies the internal
::Syslog
object to be used.
Class Method Summary
-
.make_methods(meth)
Builds a methods for level
meth
. -
.new(program_name = 'ruby', facility = nil) ⇒ Logger
constructor
Fills in variables for
Logger
compatibility.
Instance Attribute Summary
-
#facility
rw
The facility argument is used to specify what type of program is logging the message.
-
#formatter
rw
Logging formatter, as a
Proc
that will take four arguments and return the formatted message. -
#level
rw
Log level for
Logger
compatibility.
Instance Method Summary
-
#add(severity, message = nil, progname = nil, &block)
Almost duplicates #add.
-
#debug
Logs a
message
at the debug (syslog debug) log level, or logs the message returned from the block. -
#error
Logs a
message
at the error (syslog warning) log level, or logs the message returned from the block. -
#fatal
Logs a
message
at the fatal (syslog err) log level, or logs the message returned from the block. -
#info
Logs a
message
at the info (syslog info) log level, or logs the message returned from the block. -
#unknown
Logs a
message
at the unknown (syslog alert) log level, or logs the message returned from the block. -
#warn
Logs a
message
at the warn (syslog notice) log level, or logs the message returned from the block.
Constructor Details
.new(program_name = 'ruby', facility = nil) ⇒ Logger
Fills in variables for Logger
compatibility. If this is the first instance of Logger
, program_name
may be set to change the logged program name. The #facility may be set to specify the facility level which will be used.
Due to the way syslog works, only one program name may be chosen.
Class Attribute Details
.syslog (rw)
Returns the internal ::Syslog
object that is initialized when the first instance is created.
# File 'lib/syslog/logger.rb', line 93
def self.syslog @@syslog end
.syslog=(syslog) (rw)
Specifies the internal ::Syslog
object to be used.
Class Method Details
.make_methods(meth)
Builds a methods for level meth
.
Instance Attribute Details
#facility (rw)
The facility argument is used to specify what type of program is logging the message.
# File 'lib/syslog/logger.rb', line 182
attr_accessor :facility
#formatter (rw)
Logging formatter, as a Proc
that will take four arguments and return the formatted message. The arguments are:
severity
-
The Severity of the log message.
time
-
A Time instance representing when the message was logged.
progname
-
The
#progname
configured, or passed to the logger method. msg
-
The Object the user passed to the log message; not necessarily a String.
The block should return an Object that can be written to the logging device via write
. The default formatter is used when no formatter is set.
# File 'lib/syslog/logger.rb', line 177
attr_accessor :formatter
#level (rw)
Log level for Logger
compatibility.
# File 'lib/syslog/logger.rb', line 163
attr_accessor :level
Instance Method Details
#add(severity, message = nil, progname = nil, &block)
Almost duplicates #add
. progname
is ignored.
#debug
Logs a message
at the debug (syslog debug) log level, or logs the message returned from the block.
# File 'lib/syslog/logger.rb', line 157
rdoc_method :method: debug
#error
Logs a message
at the error (syslog warning) log level, or logs the message returned from the block.
# File 'lib/syslog/logger.rb', line 133
rdoc_method :method: error
#fatal
Logs a message
at the fatal (syslog err) log level, or logs the message returned from the block.
# File 'lib/syslog/logger.rb', line 127
rdoc_method :method: fatal
#info
Logs a message
at the info (syslog info) log level, or logs the message returned from the block.
# File 'lib/syslog/logger.rb', line 145
rdoc_method :method: info
#unknown
Logs a message
at the unknown (syslog alert) log level, or logs the message returned from the block.
# File 'lib/syslog/logger.rb', line 121
rdoc_method :method: unknown
#warn
Logs a message
at the warn (syslog notice) log level, or logs the message returned from the block.
# File 'lib/syslog/logger.rb', line 139
rdoc_method :method: warn