Yii 日志跳过 404 错误
Yii log skip 404 errors
也许存在跳过 404 异常的解决方案?我的意思是不将此消息存储在日志文件中?
2015/04/09 12:28:52 [error] [exception.CHttpException.404] exception 'CHttpException' with message 'Невозможно обработать запрос "offer/downloadOffer".' in /var/www/yii/framework/web/CWebApplication.php:286
Stack trace:
#0 /var/www/yii/framework/web/CWebApplication.php(141): CWebApplication->runController('offer/downloadO...')
#1 /var/www/yii/framework/base/CApplication.php(184): CWebApplication->processRequest()
#2 /var/www/LAP/www/index.php(16): CApplication->run()
#3 {main}
REQUEST_URI=/offer/downloadOffer
解决方案是排除类别。
array(
'class' => 'CFileLogRoute',
'categories' => '!exception.CHttpException.404'
),
array(
'class' => 'CEmailLogRoute',
'categories' => '!exception.CHttpException.*'
),
对于 Yii 2.0,您可以这样设置 config/main.php:
return [
'components' => [
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
'except' => ['yii\web\HttpException:404'],
],
],
],
],
];
对于 Yii 1.1,排除类别的正确方法是使用 except
键。根据已接受的答案在 categories
键中添加 !
实际上只会匹配以 !
开头的类别。因此,虽然它可能看起来有效,但实际上您将抑制所有类别。参见源代码的filterAllCategories()
函数——没有对!
字符的处理,只针对*
通配符:GitHub Source.
我在已接受的答案中尝试了 !exception.CHttpException.404
方法,并认为我已经解决了隐藏 404 错误的问题,但后来我在费尽周折之后才意识到这导致了 没有日志 被记录!
忽略类别的正确语法是:
array(
'class' => 'CFileLogRoute',
'except' => 'exception.CHttpException.404'
)
也许存在跳过 404 异常的解决方案?我的意思是不将此消息存储在日志文件中?
2015/04/09 12:28:52 [error] [exception.CHttpException.404] exception 'CHttpException' with message 'Невозможно обработать запрос "offer/downloadOffer".' in /var/www/yii/framework/web/CWebApplication.php:286
Stack trace:
#0 /var/www/yii/framework/web/CWebApplication.php(141): CWebApplication->runController('offer/downloadO...')
#1 /var/www/yii/framework/base/CApplication.php(184): CWebApplication->processRequest()
#2 /var/www/LAP/www/index.php(16): CApplication->run()
#3 {main}
REQUEST_URI=/offer/downloadOffer
解决方案是排除类别。
array(
'class' => 'CFileLogRoute',
'categories' => '!exception.CHttpException.404'
),
array(
'class' => 'CEmailLogRoute',
'categories' => '!exception.CHttpException.*'
),
对于 Yii 2.0,您可以这样设置 config/main.php:
return [
'components' => [
'log' => [
'traceLevel' => YII_DEBUG ? 3 : 0,
'targets' => [
[
'class' => 'yii\log\FileTarget',
'levels' => ['error', 'warning'],
'except' => ['yii\web\HttpException:404'],
],
],
],
],
];
对于 Yii 1.1,排除类别的正确方法是使用 except
键。根据已接受的答案在 categories
键中添加 !
实际上只会匹配以 !
开头的类别。因此,虽然它可能看起来有效,但实际上您将抑制所有类别。参见源代码的filterAllCategories()
函数——没有对!
字符的处理,只针对*
通配符:GitHub Source.
我在已接受的答案中尝试了 !exception.CHttpException.404
方法,并认为我已经解决了隐藏 404 错误的问题,但后来我在费尽周折之后才意识到这导致了 没有日志 被记录!
忽略类别的正确语法是:
array(
'class' => 'CFileLogRoute',
'except' => 'exception.CHttpException.404'
)