Возможно для приложения Logrotate Rails с пассажиром Nginx без перезагрузки?

StackOverflow https://stackoverflow.com/questions/4211493

Вопрос

Можно сделать LOGROTATE без перезапуска Nginx (просто отправьте сигнал usr1 в nginx, это сделает работу). Интересно, это возможно для моего приложения Rails (Nginx пассажир). Не стоит перезапустить мои рельсы приложения, чтобы сделать логмотату.

Это было полезно?

Решение

Если вы говорите о Rails Application Log Rotation, вы можете сделать это, надевая

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

в вашем файле окружающей среды. 2-й аргумент - это количество файлов .Log, которые вы хотели бы сохранить, и 3-го - это размер в байтах, что файлы могут достичь до того, как они будут повернуты. Эта конфигурация означает 10 файлов 1 мегабайта. Возможно, не может быть так же настраивается в качестве Logrotate (не поддерживает сжатие и т. Д.), Но она позволяет сохранить все ваши файлы журналов в вашем приложении. Обычно это работает для меня.

Также Нашел это Если хотите придерживаться вращения журнала через nginx.

Другие советы

Конфигурация Logrotate довольно проста, чтобы получить это

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

то copytruncate В основном копирует контент на новый файл и усекает старый файл. Это устраняет необходимость перезапуска.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top