欧美一级特黄大片做受成人-亚洲成人一区二区电影-激情熟女一区二区三区-日韩专区欧美专区国产专区

Yii2框架設置錯誤日志輸出到日志或數(shù)據(jù)庫

設置Yii的錯誤日志,可按照設置錯誤級別輸入到日志或數(shù)據(jù)庫中。
對yii\log\FileTarget做了重寫。

東坡ssl適用于網(wǎng)站、小程序/APP、API接口等需要進行數(shù)據(jù)傳輸應用場景,ssl證書未來市場廣闊!成為創(chuàng)新互聯(lián)建站的ssl證書銷售渠道,可以享受市場價格4-6折優(yōu)惠!如果有意向歡迎電話聯(lián)系或者加微信:18982081108(備注:SSL證書合作)期待與您的合作!

1、設置common/config/main.php
$db = require(__DIR__ . '/db.php');
return [
    'vendorPath' => dirname(dirname(__DIR__)) . '/vendor',
    'bootstrap' => ['log'],
    'components' => [
        'cache' => [
            'class' => 'yii\caching\FileCache',
        ],
        'db' => $db,
        'log' => [
            'targets' => [
                [
                    'class' => 'yii\log\FileTarget',
                    'levels' => ['error', 'warning', 'info'],
                ],
                [
//                    'class' => 'yii\log\FileTarget',
                    'class' => 'app\common\components\FileTarget',
                    'levels' => ['error'],
                    'logFile' => '@runtime/logs/error.log',
                ],//日志入庫
            ],
        ],
    ],
    'timeZone' => 'Asia/Shanghai',
];

2、app\common\components\FileTarget

<?php
 namespace app\common\components;

 use yii\helpers\VarDumper;
 use yii\log;

 class FileTarget extends log\FileTarget
 {
     public function export()
     {
        parent::export(); // TODO: Change the autogenerated stub
         //調用接口將數(shù)據(jù)入庫  默認是收集錯誤日志
         if (empty(\Yii::$app->params['errorLog']['switch'])) {//設置參數(shù)是否收集錯誤日志

            $flag = false;
            if (empty($_SERVER['DOCUMENT_ROOT'])) {
                $projectName = '';
                $entrance = 'console';
                $flag = true;
            } else {
                $document_root = explode('/', $_SERVER['DOCUMENT_ROOT']);
                $projectName = $document_root[count($document_root) - 3];//項目名稱
                $entrance = $document_root[count($document_root) - 2];//項目入口
            }

            $params = $_POST ?: $_GET;
            $errList = [];
            foreach ($this->messages as $message) {
                list($text, $level, $category, $timestamp) = $message;
                if ($level <> 4) {
                    if (!is_string($text)) {
                        // exceptions may not be serializable if in the call stack somewhere is a Closure
                        if ($text instanceof \Throwable || $text instanceof \Exception) {
                            $text = (string)$text;
                        } else {
                            $text = VarDumper::export($text);
                        }
                    }

                    if ($flag) {
                        $dir1 = '/var/www/html/';
                        $start = strpos($text, $dir1);
                        if (!$start) {
                            $dir1 = '/disk/html/';
                            $start = strpos($text, $dir1);
                            $project = substr($text, $start + strlen($dir1), 50);
                            $project = explode('/', $project);
                            $projectName = $project[0];

                        } else {
                            $project = substr($text, $start + strlen($dir1), 50);
                            $project = explode('/', $project);
                            $projectName = $project[0];
                        }
                    }

                    $text = $text . "\n" . "params:" . json_encode($params);
                    $errType = 'error';
                    if (stripos($category, 'db')) {
                        $errType = 'db';
                    } else if (stripos($text, 'redis')) {
                        $errType = 'redis';
                    }
                    $item = [];
                    $item[] = empty($projectName) ? '0' : $projectName;//項目
                    $item[] = empty($entrance) ? '0' : $entrance;//入口
                    $item[] = empty($_SERVER['SERVER_NAME']) ? '0' : $_SERVER['SERVER_NAME'];
                    $item[] = $level;
                    $item[] = $category;
                    $item[] = $timestamp;
                    $item[] = $this->getMessagePrefix($message);
                    $item[] = IPUtils::get_local_ip();
                    $item[] = empty($_SERVER['REQUEST_URI']) ? '0' : $_SERVER['REQUEST_URI'];
                    $item[] = $errType;
                    $item[] = $text;//錯誤信息
                    $errList[] = $item;
                }
            }
            //請求接口入庫
            $this->collectErrorLog($errList);
        }
    }

    /**
     * @param $data
     * @return mixed
     * 錯誤日志入庫
     */
    private function collectErrorLog($data)
    {
        if (empty(\Yii::$app->params['errorLog']['logApiDomain'])) {
            if (YII_ENV == 'local' || YII_ENV == 'dev') {
                $url = 'http://dev.api.log.3ttech.cn/inner/collect-error-log?';
            } else {
                $url = 'http://api.log.3ttech.cn/inner/collect-error-log?';
            }
        } else {
            $url = \Yii::$app->params['errorLog']['logApiDomain'] . '/inner/collect-error-log?';
        }
        $requestBody = [
            'data' => $data,
        ];
        $url .= http_build_query($requestBody);
        $response = json_decode(AHelper::curl_get($url), true);
        return $response;
    }
}

3、數(shù)據(jù)表的結構如下:
表字段可按照yii2框架中的字段調整設置。

CREATE TABLE `t_user_logs` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `project` varchar(100) NOT NULL DEFAULT '' COMMENT '項目名稱',
  `entrance` varchar(20) NOT NULL DEFAULT '' COMMENT '入口',
  `address` varchar(50) NOT NULL DEFAULT '' COMMENT '訪問域名',
  `level` varchar(200) NOT NULL DEFAULT '' COMMENT '錯誤級別',
  `category` varchar(200) NOT NULL DEFAULT '' COMMENT '類別',
  `log_time` int(11) unsigned NOT NULL DEFAULT '0' COMMENT '日志時間',
  `prefix` varchar(200) NOT NULL DEFAULT '' COMMENT '前綴',
  `suffix` varchar(200) NOT NULL DEFAULT '' COMMENT '報錯

文章標題:Yii2框架設置錯誤日志輸出到日志或數(shù)據(jù)庫
網(wǎng)站路徑:http://aaarwkj.com/article22/pcscjc.html

成都網(wǎng)站建設公司_創(chuàng)新互聯(lián),為您提供域名注冊用戶體驗、標簽優(yōu)化外貿(mào)網(wǎng)站建設、網(wǎng)站導航網(wǎng)站排名

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉載內(nèi)容為主,如果涉及侵權請盡快告知,我們將會在第一時間刪除。文章觀點不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉載,或轉載時需注明來源: 創(chuàng)新互聯(lián)

国内成人免费在线视频| 手机蜜臀av在线播放| 欧美激情欧美精品欧美色浮| 久久国产欧美日韩精品免费| 国产亚洲日本精品二区| 少妇熟女视频一区二区三区| 国产伦理在线观看一区二区| 久久午夜视频在线观看| 一起草视频在线观看视频| 91大神黑丝美女洗澡| 亚洲综合久久五月天| 国产又粗又硬又长又爽在线观看| 国产婷婷精品一区二区| 色婷婷精品综合久久狠狠| 精品熟女少妇av免费久久野外| 三级黄色片免费久久久| 亚洲一区二区三区有码| 91午夜福利视频鉴赏| 色婷婷av一二三区竹菊| 日本欧美二区在线看| 不卡免费av在线高清| 日本岛国免费一区二区| 国产精品一区二区综合亚洲| 亚洲黄色av电影在线| 黄色av免费播放网站| 亚洲av天堂免费在线观看| 高清av网站大全网站| 国产毛片一区二区在线| 亚洲欧洲久久激情久av| 日本道二区视频中文字幕| 美女高潮久久久777| 亚洲欧美精品一区二区三区 | 国产大神91一区二区三区| 在线 | 一区二区三区四区| 夫妻性生活视频在线免费看| 欧美日韩一级一区二区| 国产午夜亚洲精品羞羞网站| 色婷婷综合中文久久一本| 91久久亚洲综合精品日本 | 青青草av一区二区三区| 蜜臀av人妻一区二区三区|