Question

Il est possible de faire logrotate sans redémarrer nginx (juste envoyer le signal USR1 à nginx il fera le travail). Je me demande, il est possible pour mon application rails (passager nginx). Il ne vaut pas redémarrer mes rails apps juste pour faire logrotate.

Était-ce utile?

La solution

Si vous parlez de rails rotation application journal, vous pouvez le faire en mettant

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

dans votre fichier d'environnement. Le 2ème argument est le nombre de fichiers .log vous souhaitez conserver, et la 3e étant la taille en octets que les fichiers sont autorisés à atteindre avant qu'ils soient mis en rotation. Cette configuration signifie 10 fichiers de 1 méga-octet. Ne peut pas être aussi configurable logrotate peut-être (pas de support pour la compression, etc.), mais il vous permet de garder tous vos fichiers journaux au sein de votre application. Cela fonctionne habituellement pour moi.

trouvé cette si vous voulez coller à se connecter via la rotation nginx.

Autres conseils

configuration logrotate est assez simple pour obtenir ce bas

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

copytruncate essentiellement copie le contenu au nouveau fichier et tronque l'ancien fichier. ce qui élimine le besoin de redémarrer.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top