class Ramaze::Logger::Syslog

Logger class for writing to syslog. It is a very thin wrapper around the Syslog library.

Constants

ALIASES

Hash containing various method aliases. Rbx and Jruby don't seem to like the combination of alias() and module_function() so this works around that.

Public Class Methods

new(*args) click to toggle source

Open the syslog library, if it is allready open, we reopen it using the new argument list. The argument list is passed on to the Syslog library so please check that, and man syslog for detailed information.

There are 3 parameters:

  • ident: The identification used in the log file, defaults to $0

  • options: defaults to Syslog::LOG_PID | Syslog::LOG_CONS

  • facility: defaults to Syslog::LOG_USER

# File lib/ramaze/log/syslog.rb, line 32
def initialize(*args)
  ::Syslog.close if ::Syslog.opened?
  ::Syslog.open(*args)
end

Public Instance Methods

inspect() click to toggle source

Has to call the modules singleton-method.

# File lib/ramaze/log/syslog.rb, line 57
def inspect
  ::Syslog.inspect
end
log(tag, *messages) click to toggle source

Just sends all messages received to ::Syslog We simply return if the log was closed for some reason, this behavior was copied from Informer. We do not handle levels here. This will be done by the syslog daemon based on it's configuration.

# File lib/ramaze/log/syslog.rb, line 42
def log(tag, *messages)
  return if !::Syslog.opened?
  tag = tag.to_sym

  if ALIASES.key?(tag)
    tag = ALIASES[tag]
  end

  messages = messages.map {|m| m.gsub(/(%[^m])/,'%\1')}
  ::Syslog.send(tag, *messages)
end