Я новичок в использовании syslog.
Мы решили использовать 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
имеет третий аргумент, который является средством , но он должен быть целым числом, а у меня есть строка.
Есть предложения?