मैंने यह बहुत उपयोगी पाया, लेकिन मुझे और संपादन करना पड़ा। कुछ ने syslog को फिर से खोलने की कोशिश की, जिससे एक अनचाहे रनटाइम त्रुटि हुई। मैंने वातावरण/उत्पादन.आरबी में इस कुल्हाड़ी पागल ओवरराइड के साथ इसे ठीक किया:
require 'rubygems'
require 'log4r'
require 'log4r/outputter/syslogoutputter'
# The outputter needs some love to avoid attempts to reopen syslog. Most of this is cargo-culted from source.
class Log4r::SyslogOutputter
def initialize(_name, hash={})
super(_name, hash)
ident = (hash[:ident] or hash['ident'] or _name)
logopt = (hash[:logopt] or hash['logopt'] or LOG_PID | LOG_CONS).to_i
facility = (hash[:facility] or hash['facility'] or LOG_USER).to_i
if Syslog.opened? then
@syslog = Syslog
else
@syslog = Syslog.open(ident, logopt, facility)
end
end
end
RAILS_DEFAULT_LOGGER = Log4r::Logger.new 'mylog'
config.logger = RAILS_DEFAULT_LOGGER
config.logger.outputters = Log4r::SyslogOutputter.new("f1", :ident=>"RoR")
config.logger.info "Starting up."
ऐसा करने का शायद एक बहुत ही सुंदर तरीका है, लेकिन यह मेरे लिए ऐसा प्रतीत होता है।