Pergunta

É possível fazer o Logrotate sem reiniciar o nginx (basta enviar o sinal USR1 para o nginx, ele fará o trabalho). Eu me pergunto que é possível para o meu aplicativo Rails (passageiro nginx). Não vale a pena reiniciar meus aplicativos Rails apenas para fazer um Logrotate.

Foi útil?

Solução

Se você está falando sobre rotação do log de aplicativos Rails, pode fazer isso colocando

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

no seu arquivo de ambiente. O segundo argumento é o número de arquivos .log que você deseja manter, e o terceiro é o tamanho dos bytes que os arquivos podem alcançar antes de serem rotacionados. Essa configuração significa 10 arquivos de 1 megabyte. Pode não ser tão configurável quanto o Logrotate, talvez (sem suporte para compactação etc.), mas permite manter todos os seus arquivos de log em seu aplicativo. Isso geralmente funciona para mim.

Também Encontrei isso Se quiser seguir a rotação de log via Nginx.

Outras dicas

A configuração do Logrotate é bem simples para diminuir isso

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

a copytruncate Basicamente, copia o conteúdo para o novo arquivo e trunca o arquivo antigo. Isso elimina a necessidade de reiniciar.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top