2010-11-18 7 views

Antwort

3

Wenn Sie über Schienen Anwendungsprotokoll Rotation sprechen, können Sie tun, indem

config.logger = Logger.new(config.log_path, 10, 1024**2) 

in Ihrer Umgebung Datei setzen. Das zweite Argument ist die Anzahl der .log-Dateien, die Sie behalten möchten, und die dritte ist die Größe in Bytes, die die Dateien erreichen dürfen, bevor sie gedreht werden. Diese Konfiguration bedeutet 10 Dateien von 1 Megabyte. Möglicherweise nicht ganz so konfigurierbar wie logrotate (keine Unterstützung für Komprimierung usw.), aber Sie können alle Ihre Protokolldateien in Ihrer App behalten. Das funktioniert normalerweise für mich.

Auch found this wenn Sie an Protokollierung der Rotation über Nginx bleiben möchten.

+1

Danke, ich merke nie, dass Schienen diese Option zu tun hat. – Chamnap

+1

Ich persönlich habe festgestellt, dass die Rotation des Schienenlogs getroffen oder nicht getroffen wurde. manchmal bleibt der Rails-Logger bei der Aufzeichnung alter Dateien nach der Rotation hängen. – Addy

+3

Seien Sie vorsichtig damit ... wenn Sie mehr als eine Instanz von Rails über Passenger (dh PassengerMinInstances) betreiben und Sie auch etwas wie PassengerMaxRequests in Ihrer Passagierkonfiguration eingestellt haben, dann beachten Sie, dass jeder neue Spawn eines Rails-Prozesses erstellt eine neue Datei. Wir hatten unser Setup wie folgt: "config.logger = Logger.new (config.log_path, 14, 200000000)" und es speicherte nur 1 Tag Logs, da 14 Instanzen den ganzen Tag lang auf der Basis der Last hoch und runter laufen würden , jedes Mal eine neue Datei erstellen. Sie haben kaum die maximale Größe von 200000000 erreicht. Gehen Sie mit Syslog. – Harmon

25

logrotate Konfiguration ist ziemlich einfach zu dieser

/path/to/rails_apps/*/shared/log/*.log { 
    daily 
    missingok 
    rotate 30 
    compress 
    delaycompress 
    copytruncate 
} 

die copytruncate grundsätzlich kopiert den Inhalt auf neue Datei runter und kürzt die alte Datei. Dies macht den Neustart überflüssig.

+0

Ich frage mich, warum es kein Postrotatscript zu erzählen gibt. Irgendwelche Probleme damit? – Chamnap

+0

Ich habe meine Produktionsserver mit dieser Konfiguration .. und alles funktioniert perfekt. – Addy

+0

Dies sollte die richtige Antwort sein. – Karl