Логи модуля лежат в каталоге логов — по умолчанию на уровень выше корня сайта, для BitrixVM /home/bitrix/sh_log/*.log, — и сами не чистятся. Ротацию делает logrotate — системная утилита, а не Monolog: Monolog тоже умеет (RotatingFileHandler), но тогда за файлами следит каждый PHP-процесс, а не одна служба.
Логи модуля лежат в каталоге логов — по умолчанию на уровень выше корня сайта,
для BitrixVM /home/bitrix/sh_log/*.log, — и сами не чистятся. Ротацию делает
logrotate — системная утилита, а не Monolog: Monolog тоже умеет
(RotatingFileHandler), но тогда за файлами следит каждый PHP-процесс, а не
одна служба.
Пример настроек — logrotate/logrotate-b24-shef-problems.
В модуль он не входит: это файл для сервера, а не для портала. Пути в нём — для
окружения BitrixVM (/home/bitrix/sh_log); если корень сайта другой или каталог
задан в настройках проекта — поправьте. До 2.0.0 пути вели в
/home/bitrix/www/local/sh_log — обновляясь с 1.x, замените их.
Два блока с разным сроком хранения:
Ротация — ежедневно или при размере от 5 МБ, со сжатием.
Без logrotate диск тоже не забьётся: отладочный лог и файлы проблем пишет
CappedStreamHandler — перерос 20 МБ, файл откладывается в <имя>.1 и
начинается новый. logrotate нужен для сжатия и срока хранения, а не как
единственная защита.
copytruncate не нужен. Его добавляли, пока Monolog после ротации
продолжал писать в переименованный файл. С Monolog 3.10 StreamHandler сам
переоткрывает файл, когда у пути сменился inode, а copytruncate теряет
строки, записанные между копированием и обрезкой.
sudo yum install logrotate -y # или apt install logrotate
sudo logrotate --version
Скопировать пример в /etc/logrotate.d/, поправить пути под свой корень сайта,
владелец — root:
sudo cp -i logrotate-b24-shef-problems /etc/logrotate.d/logrotate-b24-shef-problems
sudo chown root:root /etc/logrotate.d/logrotate-b24-shef-problems
Файл берётся из репозитория, из docs/logrotate/: с 2.0.0 он не лежит в
каталоге модуля на портале.
sudo logrotate -d /etc/logrotate.d/logrotate-b24-shef-problems
-d — сухой прогон: печатает, что сделал бы, и ничего не трогает.
sudo rm /etc/logrotate.d/logrotate-b24-shef-problems
← Monolog | ↑ Содержание | Безопасность логов →