Сохранение ошибок в файл
Ошибки сохраняются в файл runtime/logs/app.log.
Чтобы записать ошибку в файл, используется метод Yii::error()
.
Yii::error('Не удалось выполнить код');
В файле будет записана ошибка, а также дополнительная иформация (дата создания, место вызова ошибки, ответ сервера, настройки пользователя).
Пример сообщения:
2018-06-17 20:34:44 [127.0.0.1][-][-][error][application] Не удалось выполнить код
Данные для сохранения
При логировании также сохраняется такие данные, как ответ сервера, информация о браузере пользователя, куки и другое.
Можно указать данные, которые надо сохранять через параметр logVars
.
# config/web.php $config = [ // … 'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], 'logVars' => ['_SERVER'], ], ], ], ];
В коде выше указано, что в логах надо сохранять только ответ сервера.
Добавить текст в логирование
По умолчанию, перед логом сохраняется IP-пользователя. Можно задать свою информацию в файле настроек config/web.php через параметр prefix
.
# config/web.php $config = [ // … 'log' => [ 'targets' => [ [ 'class' => 'yii\log\FileTarget', 'levels' => ['error', 'warning'], 'prefix' => function ($message) { return '[IP: '.Yii::$app->request->userIP.']'; } ], ], ], ];
Сообщения начнут сохраняться в следующем формате:
2018-06-17 20:34:44 [IP: 127.0.0.1][error][application] Не удалось выполнить код
Поддержать автора