私はsyslogで遊んでいるのがとても新しいです。
Rails アプリケーションでのいくつかの特別なイベントを追跡するために syslog を使用することにしました。
問題は、デフォルトのファイルを使用したくないのです/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"
メッセージは期待どおりに表示されますが、 syslog ruby gem/var/log/myapp_events.log
を使用してこの動作を再現できません。私が試してみました:
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
機能である3番目の引数があることがわかりますが、それは整数でなければならず、私が持っているのは文字列です。
なにか提案を?