我很新玩系统日志。
我们决定使用 syslog 来跟踪 Rails 应用程序中的一些特殊事件。
问题是我不想使用默认/var/log/system.log
文件,而是使用自定义文件,例如/var/log/myapp_events.log
.
我看到为此我必须/etc/syslog.conf
像这样定义自己的设施:
myapp_events.* /var/log/myapp_events.log
重新启动 syslogd 后,我看到我可以直接在bash 控制台中使用它:
syslog -s -k Facility myapp_events Message "this is my message"
该消息/var/log/myapp_events.log
按预期显示,但我无法使用syslog ruby gem重现此行为。我试过了:
require 'syslog'
Syslog.open('myapp_events', Syslog::LOG_PID | Syslog::LOG_CONS) { |s| s.warning 'this is my message' } # sends the message to system.log
Syslog.open('myapp_events', Syslog::LOG_PID | Syslog::LOG_CONS, 'myapp_events') { |s| s.warning 'this is my message' } # error because 'myapp_event' can't be converted to int.
我看到它Syslog.open
有第三个参数,它是设施,但它必须是一个整数,而我拥有的是一个字符串。
有什么建议吗?