Я очень новичок в syslog.
Мы решили использовать системный журнал для отслеживания некоторых специальных событий в нашем приложении Rails.
Проблема в том, что я не хочу использовать файл /var/log/system.log
по умолчанию, но использую пользовательский, такой как /var/log/myapp_events.log
.
Я вижу, что для этого я должен определить свой собственный объект в /etc/syslog.conf
следующим образом:
myapp_events.* /var/log/myapp_events.log
После перезапуска syslogd я вижу, что могу играть с ним прямо в bash console :
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
имеет третий аргумент, который является средством , но это должно быть целое число, а у меня есть строка.
Есть предложения?