In der Vergangenheit habe ich verwendet die syslog-logger
Juwel für dieses
Sie können dies in einem initializer einrichten:
config.logger = Logger::Syslog.new("site1", Syslog::LOG_LOCAL5)
In den letzten Rubin Versionen gibt es auch syslog/logger
in die Standardbibliothek - die Verwendung ist ziemlich gleich.
So starten Sie die Protokollierung in Syslog anstelle der Standardtextdatei. Was dann geschieht, ist eine Syslog-Konfiguration Sache - Sie rsyslog Regeln erstellen müssen, die definieren, wo Ihre Daten
Die einfachste mögliche Sache etwas wie
!site1 /var/log/site1.log
, die alles mit dem Programmnamen „site1“ leitet wäre gehen (das erste Argument für Logger :: Syslog).
Sie können viel mehr tun, zum Beispiel Protokollnachrichten an einen zentralen Protokollserver weiterleiten, der sie alle in einer Datei zusammenfasst, so dass Sie nicht für jede Ihrer Anwendungsinstanzen eine Protokolldatei benötigen .
Für Log-Rotation verwende ich Logrotate - ich glaube rsyslog kann diese Art von Sachen intern umgehen, aber ich kenne die Details nicht.
Es tut mir leid, dass ich noch nicht kommentiert habe - hatte nicht gesehen, dass es eine Antwort gab. Ich werde das nächste Woche ausprobieren - danke! –
Syslog :: LOG_LOCAL5 - gibt es hier keinen Tippfehler? –
Nur ein Schließen fehlt). Ansonsten kam es direkt aus der Konfigurationsdatei einer Produktions-App. –