Ich bin sehr neu im Umgang mit Syslog.
Wir haben beschlossen, Syslog zu verwenden, um einige spezielle Ereignisse in unserer Rails-Anwendung zu verfolgen.
Das Problem ist, dass ich nicht die Standardeinstellungen verwenden möchte. /var/log/system.log
Datei, sondern verwenden Sie eine benutzerdefinierte Datei wie /var/log/myapp_events.log
.
Ich sehe ein, dass ich dafür meine eigene Einrichtung in /etc/syslog.conf
así:
myapp_events.* /var/log/myapp_events.log
Nach dem Neustart von syslogd sehe ich, dass ich damit direkt in die Bash-Konsole :
syslog -s -k Facility myapp_events Message "this is my message"
Die Nachricht erscheint in der /var/log/myapp_events.log
wie erwartet, aber ich kann dieses Verhalten nicht reproduzieren, wenn ich die syslog ruby gem . Ich habe es versucht:
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.
Ich sehe, dass Syslog.open
hat ein drittes Argument, nämlich die Einrichtung aber es muss eine ganze Zahl sein, und was ich habe, ist eine Zeichenkette.
Haben Sie einen Vorschlag?