possibile logrotate applicazione Rails con nginx passeggero senza riavviare?
-
25-09-2019 - |
Domanda
E 'possibile fare logrotate senza riavviare nginx (basta inviare il segnale ad USR1 nginx che farà il lavoro). Mi chiedo è possibile per la mia applicazione Rails (nginx passeggero). Non vale la pena di riavviare le mie applicazioni Rails solo fare un logrotate.
Soluzione
Se si sta parlando di rotazione dei log applicazione Rails, è possibile farlo mettendo
config.logger = Logger.new(config.log_path, 10, 1024**2)
nel file ambiente. Il secondo argomento è il numero di file di log che desideri mantenere, e la terza è la dimensione in byte che i file sono autorizzati a raggiungere prima di essi saranno ruotati. Questa configurazione significa 10 file di 1 megabyte. Potrebbe non essere abbastanza configurabile come logrotate forse (senza supporto per la compressione, ecc), ma consente di mantenere tutti i file di log all'interno della vostra app. Questo di solito funziona per me.
trovato questo se vuole attaccare il login rotazione tramite nginx.
Altri suggerimenti
configurazione logrotate è abbastanza semplice per ottenere questo giù
/path/to/rails_apps/*/shared/log/*.log {
daily
missingok
rotate 30
compress
delaycompress
copytruncate
}
L'copytruncate
fondamentalmente copia il contenuto di nuovo file e tronca il vecchio file. Ciò elimina la necessità per il riavvio.