成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁 > 知識(shí)庫(kù) > Yii使用DbTarget實(shí)現(xiàn)日志功能的示例代碼

Yii使用DbTarget實(shí)現(xiàn)日志功能的示例代碼

熱門標(biāo)簽:地圖標(biāo)注符號(hào)樣式有 天客通地圖標(biāo)注 公司外呼系統(tǒng)中心 梧州市機(jī)器人外呼系統(tǒng)怎么樣 菏澤語音外呼系統(tǒng)運(yùn)營(yíng)商 電子地圖標(biāo)注怎么修改 臨沂crm外呼系統(tǒng)平臺(tái) 廈門400電話辦理選易號(hào)網(wǎng) 如何在世界地圖標(biāo)注

一:在配置文件的log組件中配置DbTarget

'log' => [
 'traceLevel' => YII_DEBUG ? 3 : 0,
 'targets' => [
  [
   'class' => 'yii\log\FileTarget',
   'levels' => ['error', 'warning'],
  ],
  'test' => [
   'class' => 'yii\log\DbTarget',//DaTarget類
   'logTable' => '{{%test_log}}',//日志表
   'levels' => ['error', 'info', 'warning'],//日志等級(jí)
  ],
 ],
],

二:生成日志表

在項(xiàng)目目錄下執(zhí)行如下命令生成日志表

php yii migrate --migrationPath=@yii/log/migrations/

三:使用日志

在需要使用日志的地方使用

Yii::info()

四:自定義DbTarget日志

1:首先創(chuàng)建一個(gè)自定義的日志表

(1)在項(xiàng)目目錄下執(zhí)行

php yii migrate/create create_test_log

(2):在創(chuàng)建的migrate文件下編寫創(chuàng)建數(shù)據(jù)庫(kù)的遷移腳本

?php
use yii\db\Migration;
/**
 * Class m200720_091126_create_test_log
 */
class m200720_091126_create_test_log extends Migration
{
 /**
  * {@inheritdoc}
  */
 public function safeUp()
 {
  $this->createTable('{{%test_log}}', [
   'id' => $this->bigPrimaryKey(),
   'level' => $this->integer()->notNull()->comment('日志等級(jí)'),
   'category' => $this->string(100)->notNull()->comment('分類名稱'),
   'prefix' => $this->text(),
   'route' => $this->string(100)->notNull()->comment('路由'),
   'method' => $this->string(20)->notNull()->comment('請(qǐng)求方式'),
   'app' => $this->string(20)->comment('請(qǐng)求應(yīng)用'),
   'module' => $this->string(20)->comment('請(qǐng)求模塊'),
   'request' => $this->text()->comment('請(qǐng)求參數(shù)'),
   'status' => $this->string(10)->notNull()->comment('狀態(tài)碼'),
   'message' => $this->text()->comment('日志內(nèi)容'),
   'request_at' => $this->double()->notNull()->comment('請(qǐng)求時(shí)間'),
   'ip' => $this->string(63)->comment('請(qǐng)求IP'),
  ], 'CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci ENGINE=InnoDB COMMENT=\'請(qǐng)求日志表'');
  //增加索引
  $this->createIndex('idx_log_level', '{{%test_log}}', 'level');
  $this->createIndex('idx_log_category', '{{%test_log}}', 'category');
  $this->createIndex('idx_log_route', '{{%test_log}}', 'route');
  $this->createIndex('idx_log_method', '{{%test_log}}', 'method');
  $this->createIndex('idx_log_status', '{{%test_log}}', 'status');
 }
 /**
  * @inheritdoc
  */
 public function safeDown()
 {
  $this->dropTable('{{%test_log}}');
 }
}

(3):執(zhí)行如下命令生成DbTarget日志表

php yii migrate

2:編寫一個(gè)DbTarget類來繼承yiilogDbTarget類

?php
namespace app\components;
use Yii;
use yii\helpers\VarDumper;
use yii\log\LogRuntimeException;
use yii\web\HttpException;
use yii\web\Request;
/**
 * DbTarget stores log messages in a database table.
 *
 * @see yii\log\DbTarget
 *
 * @author wangjian
 * @since 1.0
 */
class DbTarget extends \yii\log\DbTarget
{
 /**
  * @inheritdoc
  */
 public $categories = [
  'application',
  'yii\web\HttpException:*',
 ];
 /**
  * @inheritdoc
  */
 public $except = [
  // 'yii\web\HttpException:404',
 ];
 /**
  * @inheritdoc
  */
 public $logVars = ['_GET', '_POST'];
 /**
  * @var string 用戶組件ID
  */
 public $userComponentId = 'user';
 /**
  * @inheritdoc
  */
 public function collect($messages, $final)
 {
  $this->messages = array_merge($this->messages, static::filterMessages($messages, $this->getLevels(), $this->categories, $this->except));
  $count = count($this->messages);
  if ($count > 0  ($final || $this->exportInterval > 0  $count >= $this->exportInterval)) {
   $oldExportInterval = $this->exportInterval;
   $this->exportInterval = 0;
   $this->export();
   $this->exportInterval = $oldExportInterval;
   $this->messages = [];
  }
 }
 /**
  * @inheritdoc
  */
 public function getMessagePrefix($message)
 {
  if ($this->prefix !== null) {
   return call_user_func($this->prefix, $message);
  }
  if (Yii::$app === null) {
   return '';
  }
  $ip = $this->getIp();
  $ip = empty($ip) ? '-' : $ip;
  return "[$ip]";
 }
 /**
  * @inheritdoc
  */
 public function export()
 {
  if ($this->db->getTransaction()) {
   $this->db = clone $this->db;
  }
  $tableName = $this->db->quoteTableName($this->logTable);
  $sql = "INSERT INTO $tableName ([[level]], [[category]], [[prefix]], [[route]], [[method]], [[app]], [[module]], [[request]], [[status]], [[message]], [[request_at]], [[ip]])
    VALUES (:level, :category, :prefix, :route, :method, :app, :module, :request, :status, :message, :request_at, :ip)";
  $command = $this->db->createCommand($sql);
  $request = Yii::$app->getRequest();
  list($route, $params) = $request->resolve();
  $method = $request->getMethod();
  $module = Yii::$app->controller->module->id;
  $route = str_replace("{$module}/", '', $route);
  foreach ($this->messages as $message) {
   list($text, $level, $category, $timestamp) = $message;
   $statusCode = 200;
   if (!is_string($text)) {
    if ($text instanceof \Throwable || $text instanceof \Exception) {
     $statusCode = $text instanceof HttpException ? $text->statusCode : 500;
     $text = $text->getMessage();
    } else {
     $text = VarDumper::export($text);
    }
   }
   if ($command->bindValues([
     ':level' => $level,
     ':category' => $category,
     ':prefix' => $this->getMessagePrefix($message),
     ':route' => $route,
     ':method' => $method,
     ':app' => Yii::$app->id,
     ':module' => $module,
     ':request' => $this->getContextMessage(),
     ':status' => $statusCode,
     ':message' => $text,
     ':request_at' => $timestamp,
     ':ip' => $this->getIp(),
    ])->execute() > 0) {
    continue;
   }
   throw new LogRuntimeException('Unable to export log through database!');
  }
 }
 /**
  * 獲取當(dāng)前IP
  */
 protected function getIp()
 {
  $request = Yii::$app->getRequest();
  return $request instanceof Request ? $request->getUserIP() : '';
 }
}

3:在配置文件中將yiilogDbTarget類改成我們自定義的類

'log' => [
 'traceLevel' => YII_DEBUG ? 3 : 0,
 'targets' => [
  [
   'class' => 'yii\log\FileTarget',
   'levels' => ['error', 'warning'],
  ],
  'test' => [
   'class' => 'app\components\DbTarget',
   'logTable' => '{{%test_log}}',
   'levels' => ['error', 'info', 'warning'],
  ],
 ],
],

4:使用DbTarget日志

同樣的使用Yii::info來記錄日志

到此這篇關(guān)于Yii使用DbTarget實(shí)現(xiàn)日志功能的示例代碼的文章就介紹到這了,更多相關(guān)Yii DbTarget 日志內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

您可能感興趣的文章:
  • YII2框架中日志的配置與使用方法實(shí)例分析
  • Yii框架日志操作圖文與實(shí)例詳解
  • Yii框架日志記錄Logging操作示例
  • Yii框架實(shí)現(xiàn)記錄日志到自定義文件的方法
  • Yii2框架中日志的使用方法分析
  • 全面解讀PHP的Yii框架中的日志功能
  • YII Framework框架教程之日志用法詳解
  • PHP的Yii框架的常用日志操作總結(jié)
  • 詳解PHP的Yii框架中日志的相關(guān)配置及使用

標(biāo)簽:郴州 白城 迪慶 瀘州 雞西 黃石 綿陽 貴陽

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Yii使用DbTarget實(shí)現(xiàn)日志功能的示例代碼》,本文關(guān)鍵詞  Yii,使用,DbTarget,實(shí)現(xiàn),日志,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Yii使用DbTarget實(shí)現(xiàn)日志功能的示例代碼》相關(guān)的同類信息!
  • 本頁收集關(guān)于Yii使用DbTarget實(shí)現(xiàn)日志功能的示例代碼的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    97精品久久人人爽人人爽| 欧美日韩亚洲国产| 91精品国产91久久久久久| 精品女同一区二区三区在线观看| 国产精品福利网站| 99免费在线观看视频| 精品国产乱码久久久久夜深人妻| 久久在精品线影院精品国产| 国产视频精品免费播放| 国内露脸中年夫妇交换精品| 人妻偷人精品一区二区三区| 欧美午夜精品伦理| 精品一区二区av| 亚洲一级特黄毛片| 91麻豆精品国产91| 一区二区三区四区精品视频| 日韩精品一区二区三区在线| 17c精品麻豆一区二区免费| 18videosex性欧美麻豆| 中国女人内谢25xxxx免费视频| 古典武侠综合av第一页| 夜夜未满十八勿进的爽爽影视| 久久久久国产成人精品亚洲午夜| 在线看黄色网| 午夜精彩视频在线观看不卡| 国产精品30p| 欧美国产激情| 色中色在线视频| 成人羞羞国产免费| 亚洲综合伊人| 日本一区免费网站| 国产a亚洲精品| 日韩欧美一区二区三区久久婷婷| 色综合视频一区二区三区日韩| 亚洲国产成人porn| 国产精品com| 国产精品美女久久久久久2018| 国产手机免费视频| 国产精品自拍偷拍视频| 日本电影一区二区三区| 日产电影一区二区三区| 色综合.com| 欧美日韩国产另类不卡| 欧美一级免费在线观看| 欧美一区日韩一区| 97免费视频观看| 国产裸体无遮挡| 亚洲国产成人精品激情在线| 视频一区二区国产| 在线观看日韩| 天堂资源在线观看| 91精品国产色综合久久| 成人一区二区三| 免费黄色在线| 日韩国产专区| 黄瓜视频污app| 成人日韩视频| 亚洲人精品午夜在线观看| 欧洲一区精品| 国产伦精品一区二区三区高清版禁| 黄色一级大片在线免费看国产一| 色婷婷综合成人av| 亚洲最新av在线| 亚洲永久免费观看| 亚洲蜜桃精久久久久久久久久久久| 国产h在线观看| 日本免费视频www| 亚洲永久精品免费| 希岛爱理一区二区三区av高清| 国产小视频精品| 国产精成人品免费观看| ,亚洲人成毛片在线播放| 精品久久久久久久久久久久久久久久| 激情视频网站在线观看| 欧美写真视频一区| 欧美性一区二区三区| 国产精品三级a三级三级午夜| 欧美专区一二三| 美女网站在线免费欧美精品| 色婷婷激情综合| 高清毛片在线观看| 国产三级av在线播放| 欧美一区二区三区黄片| 欧美精品v日韩精品v韩国精品v| 成人黄色综合网站| 国产在线高潮| 国产馆av播放| 国产永久精品大片wwwapp| 五月开心六月丁香综合色啪| 99精品人妻国产毛片| 亚洲一区二区小说| 99久久精品免费看国产小宝寻花| 亚洲国产成人在线观看| 欧美性猛交xxxx黑人交| 久久精品久久久精品美女| 最新在线地址| 黄色高清视频| 一本色道久久综合| 一区二区三区韩国免费中文网站| 欧美xingq一区二区| 国产精品久久久久av福利动漫| 欧美亚洲日本在线观看| 亚洲二区在线播放视频| yy111111少妇影院日韩夜片| 91成人短视频在线观看| 免费观看美女裸体网站| 亚洲性图久久| 中文字幕亚洲精品在线观看| 手机av在线免费观看| 日本不卡视频在线播放| 欧美日韩性在线观看| 久久九九有精品国产23| 国产成人无码精品久久久性色| 亚洲永久字幕| 免费日韩一区二区三区| 欧美激情中文字幕乱码免费| 国产精品夜色7777狼人| 亚洲欧美日韩一区在线观看| 日本黄色片免费观看| 久草视频一区二区| 欧美精品成人| 深爱五月综合网| 中文字幕乱码在线播放| 成人免费av| 91极品身材尤物theporn| 超碰97人人射妻| 亚洲永久精品国产| 国产经典视频一区| 一区二区日韩免费看| 欧美性极品xxxx娇小| 美女航空一级毛片在线播放| 欧美日韩性视频在线| 忘忧草在线影院两性视频| 精品欧美乱码久久久久久1区2区| 久久日韩粉嫩一区二区三区| 午夜精品久久久久久久四虎美女版| 中日韩脚交footjobhd| 亚洲精品成人少妇| 7777精品久久久大香线蕉小说| 久久99国产成人小视频| 中文字幕一区二区三区乱码图片| 在线视频在线视频7m国产| 日韩黄色大片| 午夜剧场日韩| 国产绿帽一区二区三区| 久久久久亚洲av片无码v| 色青青草原桃花久久综合| 尤物在线精品| 国产极品久久久久久久久波多结野| 美女一区二区三区在线观看| 99riav国产| 久久久久久无码午夜精品直播| caoporm超碰国产精品| av高清在线免费观看| 手机在线观看av网站| 91在线播放网站| 国产精品一区二区三区四区在线观看| 无码人妻一区二区三区一| 亚洲美女尤物影院| 欧美激情国产精品| 国产精品影视在线| 国产99视频在线| 欧美性性性性性ⅹxxbbbb| 国产伦精品一区二区三区免费迷| 国产欧美一区视频| 色综合久久中文| 你懂的视频一区二区| 亚洲一二三四五六区| 在线播放精品视频| 欧美日韩1080p| 不卡av播放| 制服影音先锋| 一本色道久久综合亚洲精品小说| 自拍偷拍国产亚洲| 日本免费一区二区六区| 国产黄色录像片| 日本视频在线观看| 欧美色电影在线| 波多野结衣国产| 91婷婷韩国欧美一区二区| 麻豆av在线导航| 日本韩国欧美在线观看| 欧美亚洲大陆| 欧美系列一区| 99久久精品久久久久久清纯| 日韩一区二区三区观看| 国产高清视频在线播放| 欧美色18zzzzxxxxx| va天堂va亚洲va影视| 国产精品久久久久久99| 天天射天天综合网| 亚洲专区国产精品| 人人做人人爽人人爱| 麻豆自创视频在线观看| 一区二区三区在线免费看| 视频一区二区三区在线| 久久久9色精品国产一区二区三区| 欧美久久高跟鞋激| 国产精品中文字幕一区二区三区| 三上悠亚亚洲一区| 欧美日韩国产综合视频在线观看中文| 97se视频在线观看| 一二三四日本在线| 色婷婷综合五月| 欧美色综合一区二区三区| 亚欧视频在线观看| 91色porny在线视频| 日韩欧美亚洲国产精品字幕久久久| 亚洲老头同性xxxxx| 一区不卡视频| 日本欧美在线看| 日韩免费av片在线观看| 2023国产精品视频| 中文字幕亚洲精品| 你懂得影院夜精品a| 91国产免费观看| 国产成人一区二区三区免费看| 一本色道久久综合亚洲aⅴ蜜桃| 亚洲成人先锋电影| 色资源在线观看| 青草视频在线观看免费| 麻豆精品蜜桃视频网站| 成人亚洲精品777777ww| 超碰个人在线| 5858p先锋影音资源网| 狠狠色香婷婷久久亚洲精品| 国产亚洲精品美女久久| 久久久久黄久久免费漫画| 国产原创中文av| 中文字幕精品一区二| 青青精品视频播放| aiss精品大尺度系列| 亚洲男人的天堂在线播放| 欧美日韩美女| 人妻熟女aⅴ一区二区三区汇编| 黄色片免费大全| 91官网在线观看| 国产伦精品一区二区三区视频金莲| 国产精品久久久久久久久久久久久久久| 99精品欧美一区二区三区综合在线| 少妇高潮毛片色欲ava片| 国产精品99精品久久免费| 亚洲精品乱码久久久久久动漫| 午夜国产精品影院在线观看| 不卡一二三区| 怡红院男人天堂| 国产免费久久av| 手机看片一区二区| 亚洲少妇最新在线视频| 青青草原国产在线观看| 日本一区二区免费不卡| 欧美色图亚洲视频| 日韩偷拍一区二区| 野外做受又硬又粗又大视频√| 91在线观看免费| 四虎成人免费| 欧美女同在线观看| 欧美日韩国产免费一区二区三区| 真实乱视频国产免费观看| 久久久久久久国产精品视频| 中文字幕丰满乱子伦无码专区| 国产日韩欧美精品在线| 国产剧情久久久久久| 国产一级黄色录像| 久久综合国产精品台湾中文娱乐网| 亚洲tv在线观看| 亚洲天堂网中文字| 亚洲最大的黄色网址| 日韩成人在线观看| 欧美一区二区三区爽大粗免费| 欧美一区二区国产| 蜜臀精品一区二区三区在线观看| 国产欧美视频一区二区| 一区二区三区四区欧美日韩| 粉嫩久久久久久久极品| 一区二区91美女张开腿让人桶| 色婷婷综合视频在线观看| 波多野结衣电车痴汉| 精品人伦一区二区三电影| 国产又粗又爽| 精品久久久久亚洲| 国产成人综合在线视频| 亚洲精品久久久久久久久久久久| 一区国产精品视频| 国产v日韩v欧美v| 正在播放亚洲一区| av电影免费看| 亚洲最新无码中文字幕久久| 麻豆91在线播放| 欧美少妇另类| 日韩av在线电影网| 国产v日产∨综合v精品视频| www.视频一区| 精品成人av一区二区在线播放| 欧亚av在线| 国产精品久久久久福利| 巨乳诱惑日韩免费av| 欧美日韩网址| 亚洲福利影片在线| 日韩精品专区在线影院观看| 久久久精品免费| 久久久久久欧美精品se一二三四| 亚洲国产精品久久久久蝴蝶传媒| 亚洲亚洲精品在线观看| 一区二区三区在线免费观看| 玩弄japan白嫩少妇hd| 五月开心六月丁香综合色啪| 91九色porn在线资源| 芬兰videosfree性少妇| fpee性欧美| 日韩色性视频| 中文字幕视频一区二区三区久| 亚洲男人天堂影院| 亚洲精品手机在线观看| 欧美日韩国产中文字幕| 第九色区aⅴ天堂久久香| 日本蜜桃在线观看视频| 亚洲永久精品国产| 一区二区三区四区视频精品免费| 亚洲欧美制服中文字幕| 国产成人麻豆免费观看| 日韩欧美一区二区三区在线视频| 亚洲国产岛国毛片在线| 亚洲天堂视频一区| 欧洲美女女同性互添| 久久久久久亚洲精品| 日韩黄色av网站| 91蝌蚪porny成人天涯|