В Yii2 есть несколько вариантов логирования, один из них это используя .log
файлы, который хранятся внутри директории runtime
. В Yii2 basic — это runtime
, в advanced
они разделены на frontend
, backend
и common
и уже внутри находится папка runtime
. Но дело не в этом, а в том, что в них записывается много мусора, который там абсолютно не нужен и в этой записи я покажу как от него избавиться.
В предыдущей записи я уже описывал процесс настраивания логов в Yii2, поэтому в этой записи пойдет речь только о более подробных настройках.
Убрать trace уровень
Первое что вы можете сделать — это убрать trace
уровень если он у вас присутствует в конфиге:
[ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning', 'trace'], ... ]
Потому что этот уровень записывается буквально каждый шаг фреймворка, он больше подойдет для дебагинга.
Использовать except и указать ненужные классы
Изначально в логах будут записываться все логи, включая SQL запросы, профили и остальное.
Давайте уберем от туда SQL запросы, профили и остальной лишний мусор используя параметр except
:
[ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], ... 'except' => ['yii\db\*', 'yii\web\*', 'yii\base\*'], ]
Чтобы подробнее понять что убирается, можете сами подебажить и сравнить логи с except
и без него.
Таким же образом можно и исключить определенный вывод Exception’ов, например если вы хотите удалить все 404 ошибки, то пишите yii\web\HttpException:404
и дело в шляпе. Вы так же можете указать «*» вместе «404» и вы уберете все Exception’ы.
Так же не забывайте
Не забывайте, что после того как вы удалите YII_DEBUG
, то логов будет еще меньше. По умолчанию YII_DEBUG
добавляет stack trace, но благодаря if условия внутри tradeLevel
(пример ниже), вы не будете отображать Exception’ы и остальное, когда запустите проект в продакшн.
'log' => [ 'traceLevel' => YII_DEBUG ? 3 : 0, ... ]
При YII_DEBUG
будут отображаться все Exception’ы уровня 3. Каждый уровень пониже будет отображать меньше и меньше логов не касающихся проекта во время выхода «в свет».