Yii2.0 错误日志记录配置(frontend)

这篇博客介绍了如何在Yii2.0框架的前端应用中配置错误日志记录,包括不同类型的日志文件和错误级别。文章通过修改配置文件`sprout/frontend/config/main.php`设置日志目标,并在控制器中使用`Exception`进行异常处理,将错误信息记录到相应的日志文件中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

第一步:配置文件

sprout/frontend/config/main.php
<?php
$params = array_merge(
    require __DIR__ . '/../../common/config/params.php',
    require __DIR__ . '/../../common/config/params-local.php',
    require __DIR__ . '/params.php',
    require __DIR__ . '/params-local.php'
);

return [
    'id' => 'app-frontend',
    'basePath' => dirname(__DIR__),
    'bootstrap' => ['log'],
    'controllerNamespace' => 'frontend\controllers',
    'components' => [
        'request' => [
            'csrfParam' => '_csrf-frontend',
        ],
        'user' => [
            'identityClass' => 'frontend\models\Member',
            'enableAutoLogin' => true,
            'identityCookie' => ['name' => '_identity-frontend', 'httpOnly' => true],
        ],
        'session' => [
            'name' => 'advanced-frontend',
        ],
        'log' => [
            'traceLevel' => YII_DEBUG ? 3 : 0,
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning'],
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['info', 'error'],
                    'categories' => ['runException'],
                    'logFile' => '@app/runtime/logs/runException.log',
                    'maxFileSize' => 1024 * 2,
                    'maxLogFiles' => 20,
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['info', 'error'],
                    'categories' => ['runException'],
                    'logFile' => '@app/runtime/logs/sessionKey.log',
                    'maxFileSize' => 1024 * 2,
                    'maxLogFiles' => 20,
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['info', 'error'],
                    'logVars' => ['_'],
                    'categories' => ['wechatPay'],
                    'logFile' => '@app/runtime/logs/wechatPay.log',
                    'maxFileSize' => 1024 * 2,
                    'maxLogFiles' => 20,
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['info', 'error'],
                    'logVars' => ['_'],
                    'categories' => ['aliPay'],
                    'logFile' => '@app/runtime/logs/aliPay.log',
                    'maxFileSize' => 1024 * 2,
                    'maxLogFiles' => 20,
                ],
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['info', 'error'],
                    'categories' => ['mpWechatSendMessage'],
                    'logFile' => '@app/runtime/logs/mpWechatSendMessage.log',
                    'maxFileSize' => 1024 * 2,
                    'maxLogFiles' => 20,
                ],
            ],
        ],
        'errorHandler' => [
            'errorAction' => 'site/error',
        ],

        'urlManager' => [
            'enablePrettyUrl' => true,
            'showScriptName' => false,
            'rules' => [
            ],
        ],

    ],
    'modules' => [
        'mini' => [
            'class' => 'frontend\modules\mini\Modules',
        ],
        'app' => [
            'class' => 'frontend\modules\app\Modules',
        ],
        'exchangeShop' => [
            'class' => 'frontend\modules\exchangeShop\Modules',
        ],
    ],
    'params' => $params,
];
第二步:控制器
<?php

namespace frontend\modules\exchangeShop\controllers;

use common\components\constants\DictConstant;
use frontend\components\AuthBaseController;
use frontend\modules\exchangeShop\models\MemberExchangeRecord;
use yii\base\Exception;


class ArticleController extends AuthBaseController
{
    /**
     * 文章列表
     * @return array
     */
    public function actionIndex()
    {
        $code = DictConstant::SYSTEM_ERROR_STATUS;
        $message = DictConstant::SYSTEM_ERROR_MESSAGE;
        try{
            if (null) {
                $code = 600;
                $message = "hellow";
                throw new Exception($message,$code);
            }

            MemberExchangeRecord::getInfomation();

        }catch (Exception $e){

//            print_r(exceptionFormat($e));die;
//            \Yii::error((array)$e->getMessage(), 'runException');
//            \Yii::error((array)$e->getCode(), 'runException');
//            \Yii::info($e->getMessage(),'wechatPay');
//            \Yii::info($e->getCode(),'wechatPay');
//            \Yii::error((array)$e->getCode(),'wechatPay');
            \Yii::error(exceptionFormat($e),'runException');
            return ['resultCode' => $e->getCode(), 'message' => $e->getMessage(), 'data' => []];

        }
    }

}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值