Я связался с автором Log :: Dispatch :: FileRotate, как предложено здесь, и он объяснил причину, по которой сжатие еще не реализовано в Log :: Dispatch :: FileRotate.
По сути, сжатие сразу после вращения может блокировать рабочий процесс во время сжатия, которое довольно дорого.
Предложенные опции состояли в том, чтобы позволить пользователю Log :: Dispatch :: FileRotate выполнить произвольное приложение для файла сразу после ротации, выполнив это в другом неблокирующем процессе.
Другое предложение заключалось в том, чтобы триггер файловой системы (например, inotify ) запускал сжатие, когда файл закрыт для записи основным процессом.
Еще одно предложение - записать файл журнала, сжатый через канал gzip или один из модулей perl gzip. Это работает, но вызывает некоторые проблемы (grep / less) не будет работать. zgrep и zless будут работать, но zgrep выдает ужасное предупреждение при поиске файла gzip, который все еще открыт для записи. Использование «хвоста» в файле также не сработает, поэтому этот параметр не практичен.