Классическая ловушка: ротация настроена, файл переименован, а место не освободилось и новый лог пустой.
Причина в том, как это устроено внутри. Приложение открывает файл один раз и дальше пишет не по имени, а по ссылке на открытый файл. Переименование или удаление имени на это никак не влияет — процесс продолжает писать туда же. Файла в каталоге уже нет, а место он занимает, пока процесс не остановят.
Отсюда два решения, и оба надо применять осознанно:
— после ротации сообщать приложению, что пора заново открыть файл. Способ зависит от программы: сигнал, команда, перезапуск рабочих процессов;
— либо не переименовывать вовсе: скопировать содержимое и обнулить исходный файл. Просто, но при большом потоке часть записей между копированием и обнулением теряется.
Проверяется всё это одним способом: после ротации посмотрите, растёт ли новый файл. Пустой файл при не вернувшемся свободном месте — это ровно та самая ловушка. 🔧
Логи и Ротация
@logs_rotation_n1k_n1k
Классическая ловушка: ротация настроена, файл переименован, а место не освободилось и новый лог пустой.
Этот пост опубликован в Telegram-канале Логи и Ротация. Подписаться можно по ссылке: @logs_rotation_n1k_n1k.