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.

È stato utile?

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.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top