Задать вопрос
@aradon
PHP-Developer

Yii2: Убрать NotFoundHttpException из php error_log'a?

Привет! Ребят, задолбался, такая простая вещь и что-то я туплю, не могу понять как справиться.

Как сделать так, чтобы исключения NotFoundHttpException (типа 404, страница не найдена) не валились в php error_log? тот, который системный, что в настройках nginx указывается. Сейчас он завален кучей вот такого:

[20-Nov-2017 15:17:02 Europe/Kiev] Запись не существует или она была удалена. 62 /data/web/mysite.com/frontend/controllers/BlogsController.php
#0 /data/web/mysite.com/frontend/controllers/BlogsController.php(35): frontend\controllers\BlogsController->findModel('25890')
#1 [internal function]: frontend\controllers\BlogsController->actionPost('25890')
#2 /data/web/web/mysite.com/vendor/yiisoft/yii2/base/InlineAction.php(55): call_user_func_array(Array, Array)
#3 /data/web/web/mysite.com/endor/yiisoft/yii2/base/Controller.php(154): yii\base\InlineAction->runWithParams(Array)
#4 /data/web/web/mysite.com/vendor/yiisoft/yii2/base/Module.php(454): yii\base\Controller->runAction('post', Array)
#5 /data/web/web/mysite.com/vendor/yiisoft/yii2/web/Application.php(100): yii\base\Module->runAction('blogs/post', Array)
#6 /data/web/web/mysite.com/vendor/yiisoft/yii2/base/Application.php(375): yii\web\Application->handleRequest(Object(frontend\components\Request))
#7 /data/web/web/mysite.com/frontend/web/index.php(19): yii\base\Application->run()
#8 {main}


Добавление параметра except в настройки компонента log в /frontend/config/main.php не помогло. Сейчас он выглядит вот так:
'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
		    'except' => [
		         'yii\web\HttpException:404',
		    ],
                ],
            ],
        ],


UP: Ответ ниже не помогает
  • Вопрос задан
  • 347 просмотров
Подписаться 2 Простой 1 комментарий
Пригласить эксперта
Ответы на вопрос 1
@SVZhidkow
Бэкенд-разработчик
В документации сказано:

При обработке HTTP-исключения обработчиком ошибок, сообщение будет сохранено с категорией вида yii\web\HttpException:ErrorCode. Например, исключение yii\web\NotFoundHttpException вызовет сообщение об ошибке с категорией yii\web\HttpException:404.


И приведен пример:

[
    'class' => 'yii\log\FileTarget',
    'levels' => ['error', 'warning'],
    'categories' => [
        'yii\db\*',
        'yii\web\HttpException:*',
    ],
    'except' => [
        'yii\web\HttpException:404',
    ],
]


У меня так всё работает.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы