将rails中的syslogger设置为除用户之外的东西

时间:2009-12-03 07:19:02

标签: ruby-on-rails syslog

我在rails上的ruby中使用syslog-logger gem。默认情况下,这使用名为user的工具和名为rails的程序。如何将设施设置为“local0”或“local1”或任何其他设施?

1 个答案:

答案 0 :(得分:2)

试试这个:

require 'syslog_logger'
SyslogLogger::SYSLOG = Syslog.open('progname', Syslog::LOG_ODELAY, Syslog::LOG_LOCAL0)
RAILS_DEFAULT_LOGGER = SyslogLogger.new

将您想要的设施的常量替换为Syslog.open的第三个参数。注意LOG_ODELAY表示第二个arg的默认值;如果您需要特殊的系统日志行为,可以在那里使用其他值。

至于为什么这应该有效,请查看initialize code,您将看到Syslog以默认方式打开,具体取决于是否设置了SyslogLogger :: SYSLOG。