It will be nice, if you provide SyslogLogger, too.
We use Syslog for everything.
I wrote a patch to provide SyslogLogger in server.
Instead this:
begin
@@logger = Logger.new(filename)
rescue Exception => error
raise "Error opening logger #{filename}: #{error}"
end
use this:
if filename =~ /^syslog:(.+)?$/
prog = $1 ? $1 : File.basename( $0, '.rb')
begin require 'syslog_logger'
rescue LoadError
if $!.message == 'no such file to load -- syslog_logger'
raise "SyslogLogger not installed. Please install it >>gem install SyslogLogger<<,
if you want to use it or use file-logging."
end
raise
end
# Some code asks, if @@logger is a Logger-instance.
# It isn't true, but SyslogLogger provides the same functionality,
# so it returns true, if somebody asks @@logger, if it's a Logger-instance.
SyslogLogger.class_eval do
def kind_of?( c) c == Logger || super( c) end
end
@@logger = SyslogLogger.new prog
else
begin @@logger = Logger.new filename
rescue Exception
raise "Error opening logger #{filename}: #{$!}"
end
end |