将 Rails 中的系统记录器设置为除用户之外的其他内容

发布于 2024-08-13 22:07:08 字数 116 浏览 6 评论 0原文

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

I am using the syslog-logger gem in ruby on rails. This, by default, uses a facility called user, and a program called rails. How can I set the facility to be something like 'local0' or 'local1' or any other facility?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

弥繁 2024-08-20 22:07:08

尝试以下操作:

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

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

至于为什么这应该起作用,请查看初始化代码< /a> 您将看到 Syslog 根据是否设置 SyslogLogger::SYSLOG 以默认方式打开。

Try this:

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

Substitute the constant for the facility you want as the third argument to Syslog.open. Note the LOG_ODELAY represents the default for the second arg; other values could be used there if you need special syslog behavior.

As to why this should work, take a look at the initialize code where you will see that Syslog is opened in the default way based on whether SyslogLogger::SYSLOG is set.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文