将 Rails 中的 syslogger 设置为除用户之外的其他内容

Posted

技术标签:

【中文标题】将 Rails 中的 syslogger 设置为除用户之外的其他内容【英文标题】:setting facility for syslogger in rails to something besides user 【发布时间】:2009-12-03 07:19:02 【问题描述】:

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

【问题讨论】:

【参考方案1】:

试试这个:

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

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

至于为什么会这样,看看initialize code,你会看到根据是否设置了 SyslogLogger::SYSLOG 以默认方式打开 Syslog。

【讨论】:

以上是关于将 Rails 中的 syslogger 设置为除用户之外的其他内容的主要内容,如果未能解决你的问题,请参考以下文章

配置 nginx 为除主页之外的所有页面返回 503 错误代码

JSON整数自动转换为除id之外的字符串[关闭]

OrmLite可以为除主键之外的属性指定外键吗

PHP 为除最后一项以外的每一项添加逗号

在 Rails 上将复选框默认设置为 true

从rails中的yaml获取变量