亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發(fā) > PHP > 正文

YII Framework框架教程之日志用法詳解

2024-05-04 23:43:51
字體:
供稿:網(wǎng)友
這篇文章主要介紹了YII Framework框架教程之日志用法,結(jié)合實(shí)例形式詳細(xì)分析了Yii框架日志的配置,使用方法及相關(guān)注意事項(xiàng),需要的朋友可以參考下
 

本文實(shí)例講述了YII Framework框架日志用法。分享給大家供大家參考,具體如下:

日志的作用(此處省略1000字)

YII中的日志很好很強(qiáng)大,允許你把日志信息存放到數(shù)據(jù)庫,發(fā)送到制定email,存放咋文件中,意見顯示頁面是,甚至可以用來做性能分析。

YII中日志的基本配置:/yii_dev/testwebap/protected/config/main.php

'log'=>array(  'class'=>'CLogRouter',  'routes'=>array(    array(      'class'=>'CFileLogRoute',      'levels'=>'error, warning',    ),    // uncomment the following to show log messages on web pages    /*    array(      'class'=>'CWebLogRoute',    ),    */  ),),

YII中日志的基本使用

可以通過YII提供的Yii::log和Yii::trace進(jìn)行日志信息的輸出,兩者的區(qū)別看看定義就知道了。

函數(shù)定義

public static function trace($msg,$category='application'){  if(YII_DEBUG)    self::log($msg,CLogger::LEVEL_TRACE,$category);}public static function log($msg,$level=CLogger::LEVEL_INFO,$category='application'){  if(self::$_logger===null)    self::$_logger=new CLogger;  if(YII_DEBUG && YII_TRACE_LEVEL>0 && $level!==CLogger::LEVEL_PROFILE)  {    $traces=debug_backtrace();    $count=0;    foreach($traces as $trace)    {      if(isset($trace['file'],$trace['line']) && strpos($trace['file'],YII_PATH)!==0)      {        $msg.="/nin ".$trace['file'].' ('.$trace['line'].')';        if(++$count>=YII_TRACE_LEVEL)          break;      }    }  }  self::$_logger->log($msg,$level,$category);}

$msg:你要輸出的日志信息

$category:日志信息所屬分類

$level:日志信息的級(jí)別:

const LEVEL_TRACE='trace';用于調(diào)試環(huán)境,追蹤程序執(zhí)行流程
const LEVEL_WARNING='warning';警告信息
const LEVEL_ERROR='error';致命錯(cuò)誤信息
const LEVEL_INFO='info';普通提示信息
const LEVEL_PROFILE='profile';性能調(diào)試信息

基本使用方法舉例

<?phpclass DefaultController extends Controller{  public function actionCache ()  {    $category='system.testmod.defaultController';    $level=CLogger::LEVEL_INFO;    $msg='action begin ';    Yii::log($msg,$level,$category);  }}

YII中日志的輸出位置

上文提到Y(jié)II中日志的輸出位置可以定義為很多位置。主要通過配置文件修改例如:

'log'=>array(  'class'=>'CLogRouter',  'routes'=>array(    array(      'class'=>'CFileLogRoute',      'levels'=>'error, warning',    ),    // uncomment the following to show log messages on web pages    array(      'class'=>'CWebLogRoute',    ),  ),),

不僅輸出到日志文件中,還輸出到web頁面上。

配置文件中:

routes用于配置日志輸出的位置,
class是日志,日志路由的類名
levels是日志的頂級(jí),字符串序列,用都好分割。具體對(duì)應(yīng)CLooger中的常量

注意:

日志文件的存放位置是:/yii_dev/testwebap/protected/runtime/application.log

官方的日志介紹的很詳細(xì),但是后半部分中文翻譯缺失了,這里進(jìn)行翻譯補(bǔ)全。

Yii 提供了一個(gè)靈活可擴(kuò)展的日志功能。記錄的日志 可以通過日志級(jí)別和信息分類進(jìn)行歸類。通過使用 級(jí)別和分類過濾器,所選的信息還可以進(jìn)一步路由到 不同的目的地,例如一個(gè)文件,Email,瀏覽器窗口等。

1. 信息記錄

信息可以通過 Yii::log 或 Yii::trace 記錄。其 區(qū)別是后者只在當(dāng)應(yīng)用程序運(yùn)行在 調(diào)試模式(debug mode) 中時(shí)才會(huì)記錄信息。

Yii::log($message, $level, $category);Yii::trace($message, $category);

當(dāng)記錄信息時(shí),我們需要指定它的分類和級(jí)別 分類是一段格式類似于 路徑別名 的字符串。 例如,如果一條信息是在 CController 中記錄的,我們可以使用 system.web.CController 作為分類。信息級(jí)別應(yīng)該是下列值中的一種:

trace: 這是在 Yii::trace 中使用的級(jí)別。它用于在開發(fā)中 跟蹤程序的執(zhí)行流程。
info: 這個(gè)用于記錄普通的信息。
profile: 這個(gè)是性能概述(profile)。下面馬上會(huì)有更詳細(xì)的說明。
warning: 這個(gè)用于警告(warning)信息。
error: 這個(gè)用于致命錯(cuò)誤(fatal error)信息。

2. 信息路由

通過 Yii::log 或 Yii::trace 記錄的信息是保存在內(nèi)存中的。 我們通常需要將它們顯示到瀏覽器窗口中,或者將他們保存到一些 持久存儲(chǔ)例如文件、Email中。這個(gè)就叫作 信息路由,例如, 發(fā)送信息到不同的目的地。

在 Yii 中,信息路由是由一個(gè)叫做 CLogRouter 的應(yīng)用組件管理的。 它負(fù)責(zé)管理一系列稱作 日志路由 的東西。每個(gè)日志路由 代表一個(gè)單獨(dú)的日志目的地。通過一個(gè)日志路由發(fā)送的信息會(huì)被他們的級(jí)別和分類過濾。

要使用信息路由,我們需要安裝并預(yù)加載一個(gè) CLogRouter 應(yīng)用組件。我們也還需要配置它的 routes 屬性為我們想要的那些日志路由。 下面的代碼演示了一個(gè)所需的 應(yīng)用配置 示例:

array(  ......  'preload'=>array('log'),  'components'=>array(    ......    'log'=>array(      'class'=>'CLogRouter',      'routes'=>array(        array(          'class'=>'CFileLogRoute',          'levels'=>'trace, info',          'categories'=>'system.*',        ),        array(          'class'=>'CEmailLogRoute',          'levels'=>'error, warning',          'emails'=>'admin@example.com',        ),      ),    ),  ),)

在上面的例子中,我們定義了兩個(gè)日志路由。第一個(gè)是 CFileLogRoute ,它會(huì)把信息保存在位于應(yīng)用程序 runtime 目錄中的一個(gè)文件中。 而且只有級(jí)別為 trace 或 info 、分類以 system. 開頭的信息才會(huì)被保存。 第二個(gè)路由是 CEmailLogRoute ,它會(huì)將信息發(fā)送到指定的 email 地址,且只有級(jí)別為 error 或 warning 的才會(huì)發(fā)送。

在 Yii 中,有下列幾種日志路由可用:

CDbLogRoute: 將信息保存到數(shù)據(jù)庫的表中。
CEmailLogRoute: 發(fā)送信息到指定的 Email 地址。
CFileLogRoute: 保存信息到應(yīng)用程序 runtime 目錄中的一個(gè)文件中。
CWebLogRoute: 將 信息 顯示在當(dāng)前頁面的底部。
CProfileLogRoute: 在頁面的底部顯示概述(profiling)信息。

信息: 信息路由發(fā)生在當(dāng)前請(qǐng)求周期最后的 onEndRequest 事件觸發(fā)時(shí)。 要顯式終止當(dāng)前請(qǐng)求過程,請(qǐng)調(diào)用 CApplication::end() 而不是使用 die() 或 exit(),因?yàn)?CApplication::end() 將會(huì)觸發(fā)onEndRequest 事件, 這樣信息才會(huì)被順利地記錄。

3. 信息過濾

正如我們所提到的,信息可以在他們被發(fā)送到一個(gè)日志路由之前通過它們的級(jí)別和分類過濾。 這是通過設(shè)置對(duì)應(yīng)日志路由的 levels 和 categories 屬性完成的。 多個(gè)級(jí)別或分類應(yīng)使用逗號(hào)連接。

由于信息分類是類似 xxx.yyy.zzz 格式的,我們可以將其視為一個(gè)分類層級(jí)。 具體地,我們說 xxx 是 xxx.yyy的父級(jí),而xxx.yyy 又是 xxx.yyy.zzz 的父級(jí)。 這樣我們就可以使用 xxx.* 表示分類 xxx 及其所有的子級(jí)和孫級(jí)分類

4. 記錄上下文信息

從版本 1.0.6 起,我們可以設(shè)置記錄附加的上下文信息, 比如 PHP 的預(yù)定義變量(例如 $_GET, $_SERVER),session ID,用戶名等。 這是通過指定一個(gè)日志路由的 CLogRoute::filter屬性為一個(gè)合適的日志過濾規(guī)則實(shí)現(xiàn)的。

The framework comes with the convenient CLogFilter that may be used as the needed log filter in most cases. By default, CLogFilter will log a message with variables like $_GET, $_SERVER which often contains valuable system context information. CLogFilter can also be configured to prefix each logged message with session ID, username, etc., which may greatly simplifying the global search when we are checking the numerous logged messages.

框架可能在許多數(shù)情況下會(huì)用到日志過濾器CLogFilter來過濾日志。默認(rèn)情況下,CLogFilter日志消息包含了許多系統(tǒng)上下文信息的變量,像$ _GET,$_SERVER。 CLogFilter也可以配置的前綴與會(huì)話ID,用戶名等,我們?cè)跈z查無數(shù)記錄的消息每個(gè)記錄的消息時(shí),這可能會(huì)極大地簡(jiǎn)化了搜索難度

The following configuration shows how to enable logging context information. Note that each log route may have its own log filter. And by default, a log route does not have a log filter.

下面的配置顯示了如何啟用日志記錄的上下文信息。請(qǐng)注意,每個(gè)日志路由可能有其自己的日志過濾器。 默認(rèn)情況下,日志路由不會(huì)有日志篩選器。

array(  ......  'preload'=>array('log'),  'components'=>array(    ......    'log'=>array(      'class'=>'CLogRouter',      'routes'=>array(        array(          'class'=>'CFileLogRoute',          'levels'=>'error',          'filter'=>'CLogFilter',        ),        ...other log routes...      ),    ),  ),)

Starting from version 1.0.7, Yii supports logging call stack information in the messages that are logged by calling Yii::trace. This feature is disabled by default because it lowers performance. To use this feature, simply define a constant named YII_TRACE_LEVEL at the beginning of the entry script (before includingyii.php) to be an integer greater than 0. Yii will then append to every trace message with the file name and line number of the call stacks belonging to application code. The number YII_TRACE_LEVEL determines how many layers of each call stack should be recorded. This information is particularly useful during development stage as it can help us identify the places that trigger the trace messages.

從版本1.0.7開始,Yii的日志記錄可以采用堆棧的方式記錄消息,此功能默認(rèn)是關(guān)閉的,因?yàn)樗鼤?huì)降低性能。要使用此功能,只需在入口腳本(前includingyii.php)定義一個(gè)命名為YII_TRACE_LEVEL的常量即一個(gè)大于0的整數(shù)。 Yii將在堆棧信息中追加應(yīng)用程序要到的每一個(gè)文件名和行號(hào)??梢酝ㄟ^設(shè)置YII_TRACE_LEVEL來設(shè)定堆棧的層數(shù)。這種方式在開發(fā)階段特別有用,因?yàn)樗梢詭椭覀兇_定觸發(fā)跟蹤消息的地方。

5. Performance Profiling 性能分析

Performance profiling is a special type of message logging. Performance profiling can be used to measure the time needed for the specified code blocks and find out what the performance bottleneck is.

性能分析是一類特殊類型的消息記錄。性能分析可用于測(cè)量指定代碼塊所需的時(shí)間,并找出性能瓶頸是什么。

To use performance profiling, we need to identify which code blocks need to be profiled. We mark the beginning and the end of each code block by inserting the following methods:

要使用性能分析日志,我們需要確定哪些代碼塊需要分析。我們要在分析性能的代碼短的開始和結(jié)尾添加如下方法:

Yii::beginProfile('blockID');...code block being profiled...Yii::endProfile('blockID');

where blockID is an ID that uniquely identifies the code block.

其中blockID是一個(gè)標(biāo)識(shí)代碼塊的唯一ID。

Note, code blocks need to be nested properly. That is, a code block cannot intersect with another. It must be either at a parallel level or be completely enclosed by the other code block.

注意,這些方法不能交叉嵌套

To show profiling result, we need to install a CLogRouter application component with a CProfileLogRoute log route. This is the same as we do with normal message routing. The CProfileLogRoute route will display the performance results at the end of the current page.

為了顯示分析結(jié)果,我們需要為CLogRouter增加CProfileLogRoute路由。然后通過CProfileLogRoute可以把性能測(cè)試結(jié)果顯示在當(dāng)前頁面結(jié)束。

6. Profiling SQL Executions 分析SQL執(zhí)行

Profiling is especially useful when working with database since SQL executions are often the main performance bottleneck of an application. While we can manually insert beginProfile and endProfilestatements at appropriate places to measure the time spent in each SQL execution, starting from version 1.0.6, Yii provides a more systematic approach to solve this problem.

在數(shù)據(jù)庫開發(fā)中分析是特別有用的,因?yàn)镾QL執(zhí)行往往是應(yīng)用程序的主要性能瓶頸。盡管我們可以手動(dòng)在每個(gè)SQL執(zhí)行的適當(dāng)?shù)牡胤讲迦隻eginProfile和endProfile來衡量花費(fèi)的時(shí)間,但從1.0.6版本開始,Yii提供了更系統(tǒng)的方法來解決這個(gè)問題。

By setting CDbConnection::enableProfiling to be true in the application configuration, every SQL statement being executed will be profiled. The results can be readily displayed using the aforementionedCProfileLogRoute, which can show us how much time is spent in executing what SQL statement. We can also call CDbConnection::getStats() to retrieve the total number SQL statements executed and their total execution time.

再實(shí)際的應(yīng)用程序當(dāng)中通過設(shè)置CDbConnection::enableProfiling愛分析每一個(gè)正在執(zhí)行的SQL語句。使用 CProfileLogRoute,結(jié)果可以很容易地顯示。它可以顯示我們是在執(zhí)行什么SQL語句花費(fèi)多少時(shí)間。我們也可以調(diào)用CDbConnection:getStats()來分析檢索SQL語句的執(zhí)行總數(shù)和其總的執(zhí)行時(shí)間。



發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
国产精品一码二码三码在线| 97在线资源在| 欧美午夜电影一区二区三区| 日韩免费在线视频观看| 午夜精彩视频在线观看不卡| 国产尤物一区二区三区| 麻豆成人免费视频| www在线观看黄色| 亚洲欧美日本在线观看| 久久九九久久九九| 午夜天堂影视香蕉久久| 久久精品日产第一区二区三区乱码| 欧美韩日一区二区| 欧美视频中文字幕| 亚洲精品免费视频| 久草在线免费福利| 亚洲一区二区三区四区电影| 国产精品大片免费观看| 中文字幕天堂av| 日韩在线国产精品| 97视频在线观看播放| 成年人视频在线免费看| 亚洲人成免费网站| 亚洲免费在线观看视频| 亚洲一区二区福利视频| 能看的毛片网站| 在线观看电影av| 亚洲精品国产福利| 色婷婷精品国产一区二区三区| 亚洲日本伊人| 久久激情视频久久| 免费在线午夜视频| 极品一线天粉嫩虎白馒头| 日本午夜精品理论片a级app发布| eeuss鲁片一区二区三区在线观看| 91免费国产视频| 99久久国产综合精品女不卡| 国产精品老女人| 国产一区免费电影| 国产亚洲色婷婷久久| 欧洲日本亚洲国产区| 日韩精品日韩在线观看| 国产综合精品| 国产裸体免费无遮挡| 国产5g成人5g天天爽| www.欧美国产| 欧美xxxx黑人又粗又长精品| 男人猛进猛出女人屁股视频| 国产理论在线观看| 99久久久精品免费观看国产蜜| 亚洲精品久久久久久一区二区| 在线综合亚洲| 天堂av2020| 欧美岛国在线观看| 亚洲国产sm捆绑调教视频| 性欧美视频videos6一9| 欧美亚洲国产精品| 97视频在线观看网站| 欧美激情免费在线| 少妇高潮一区二区三区99| 亚洲男同1069视频| 熟女少妇一区二区三区| 在线观看成人影院| 成人短视频在线看| 九九99九九精彩| 午夜不卡福利视频| 一个人免费播放在线视频看片| 久久久香蕉视频| 日本中文字幕影院| 日韩毛片免费看| 伊人久久亚洲美女图片| 一区二区视频在线| 国产成人在线免费观看视频| 欧美性生交xxxxx久久久| 亚洲 小说区 图片区| 人xxxx性xxxxx欧美| 97不卡在线视频| 天天射天天色天天干| 国产精品国产国产aⅴ| 先锋影音一区二区三区| 欧美亚洲免费高清在线观看| 国产精品丝袜在线播放| 日韩区国产区| 日韩av中文字幕第一页| 国产欧美一区二区三区在线看蜜臀| 欧洲成人一区二区三区| 国产日韩在线免费| 欧美日韩第一区| 久青草国产97香蕉在线视频| 欧美精品亚洲精品| 麻豆免费精品视频| 免费在线观看一区| 国产精品美女午夜av| 五月婷婷另类国产| 国产日产精品一区二区三区四区| 高潮精品一区videoshd| 亚洲大尺度视频在线观看| 日韩在线免费观看av| 精品国产91乱码一区二区三区| 精品欧美一区二区三区精品久久| 无尽裸体动漫2d在线观看| 97精品人妻一区二区三区蜜桃| 日韩丝袜美女视频| 久久国产精品亚洲人一区二区三区| 国产精品激情av电影在线观看| 人妻激情偷乱视频一区二区三区| 日本国产在线观看| 国产无套在线观看| eeuss一区二区三区| 艳妇乳肉豪妇荡乳av| 无码人妻丰满熟妇奶水区码| 最近中文字幕无免费| h网站久久久| 国产美女娇喘av呻吟久久| 久久偷拍免费视频| 精品欧美一区二区久久| 伊人成人在线观看| 亚洲一二三区视频在线观看| 国产98在线|日韩| 欧美日韩国产精品一区二区亚洲| 最新69国产成人精品视频免费| 国产午夜精品在线| 视频在线观看免费高清| 自拍偷拍国产精品| 粗大黑人巨茎大战欧美成人| 婷婷婷国产在线视频| 亚洲高清国产拍精品26u| 久久久精品人妻无码专区| 日韩av片电影专区| 玖玖视频精品| 欧美69精品久久久久久不卡| 99久久久无码国产精品不卡| 黄色免费大全亚洲| 欧美日韩一级二级| 最新中文字幕免费视频| 欧美亚洲一级二级| 日韩欧美一区二区三区| 在线不卡免费视频| 亚洲电影小说图| 中文字幕亚洲一区二区三区| 一本一本大道香蕉久在线精品| 国产一区二区三区免费不卡| 成人影片在线播放| 中文字幕一区二区三区四区久久| 国产精品毛片一区视频| 中文字幕一区二区三区在线观看| 男人在线观看视频| 96久久久久久| 日本黄xxxxxxxxx100| 无码人妻aⅴ一区二区三区日本| 亚洲欧洲日韩精品| 久久你懂得1024| 日韩黄色免费网站| 香蕉久久国产av一区二区| 日韩美女啊v在线免费观看| 日韩三级视频在线观看| 超污网站在线观看| 99国产在线观看| chinesemodel无套啪啪| 国产精品久久久久久久av大片| 国产精品videosex性欧美| 香蕉av一区二区| 美女露出粉嫩尿囗让男人桶| 亚洲 小说 欧美 激情 另类| 在线成人av网站| 亚洲不卡在线视频| 在线网址91| 成人精品aaaa网站| 欧美久久一级| 日韩在线观看不卡| 成年人羞羞的网站| 成人性生交大片免费看中文| 99视频入口| 亚洲精品成人久久电影| 欧美激情aaa| 国产啪精品视频| 精品对白一区国产伦| 日韩一区二区在线视频| 欧美激情一区| 免费免费啪视频在线观看| 免费福利电影| a级片在线免费观看| 久久精品一区二区三| 欧美一级淫片a免费视频| 欧美大交乱xxxx| xxxx黑人da| 国产精品美乳在线观看| 538国产精品一区二区在线| 精品淫伦v久久水蜜桃| 91九色最新地址| 成人av网站免费| 91啪亚洲精品| 亚洲午夜精品一区二区国产| 亚洲一区二区三区高清不卡| 欧美一区久久久| 亚洲成人av中文| 先锋a资源在线看亚洲| 久久久久久久久久久97| 日韩一区二区三区免费视频| 亚洲国产视频在线观看| 精品影院一区| 亚洲综合自拍一区| 国产白浆在线观看| 成人精品视频一区二区三区| 丁香婷婷成人| 午夜dv内射一区二区| 亚洲人成电影网站色…| 日韩高清一区| 国产一区欧美二区三区| 99精品国产一区二区三区不卡| 免费av福利在线观看| 99视频有精品高清视频| 污污网站在线| 无码aⅴ精品一区二区三区浪潮| 久久这里只有精品99| 国产69精品久久久久9| 亚洲国产精品无码久久久久高潮| 亚洲性69xxxbbb| 午夜看片在线免费| 国产高潮在线观看| 欧洲不卡av| 欧美日韩导航| 亚洲不卡一卡2卡三卡4卡5卡精品| 亚洲男人天堂2019| 先锋影音男人av资源| 亚洲av成人精品一区二区三区在线播放| 精品亚洲va在线va天堂资源站| 奇米视频888| 久久久久久亚洲中文字幕无码| 亚洲一区二区三区高清不卡| 免费在线观看你懂的| 国产aⅴ爽av久久久久| 99久热re在线精品996热视频| 岛国大片在线免费观看| 中文字幕另类日韩欧美亚洲嫩草| 亚州欧美精品suv| av在线影音| 成人午夜sm精品久久久久久久| 亚洲欧美日韩不卡| www.国产精品| 成人永久免费| 黄色高清无遮挡| 97超级碰碰碰久久久| 在线免费不卡视频| 国产资源在线观看| 中文字幕亚洲综合久久菠萝蜜| 久久久久久久久久97| 免费看片黄色| 国产精品九九九九| 国产免费成人av| 精品久久久中文字幕| 亚洲精品一区二区三区新线路| 麻豆免费网站| 欧美剧在线免费观看网站| 欧美嫩在线观看| 国产午夜视频在线播放| 国产精品黄页网站在线播放免费| 日韩伦理在线一区| 国产三级aaa| 凹凸国产熟女精品视频| 欧美va在线播放| 潘金莲一级淫片aaaaaa播放| 另类中文字幕网| av资源站久久亚洲| 午夜久久久久久久| 国产suv精品一区二区三区88区| 91|九色|视频| 欧美视频在线播放一区| 高清成人在线观看| 26uuu久久天堂性欧美| 午夜爽爽爽男女免费观看| 九九视频免费观看| 国产精品福利在线观看播放| 可以免费观看的毛片| hd100%videos日本| 亚洲无人区码一码二码三码的含义| 激情综合视频| 粉嫩嫩av羞羞动漫久久久| 这里只有精品电影| www.九九热.com| 四虎精品一区二区永久在线观看| 久久av影视| 91国产高清在线| 精品麻豆剧传媒av国产九九九| 久久精品噜噜噜成人av农村| 9999久久久久| 中国极品少妇xxxx| 免费精品视频一区二区三区| av在线影音| www.这里只有精品| 久久综合久久鬼色| 亚洲一区二区在线观| 国产剧情演绎av| 欧美精选午夜久久久乱码6080| 91天堂在线观看| 国产精品天干天干在线综合| 欧洲精品一区二区三区在线观看| 亚洲第一福利网站| 久久久久无码国产精品一区| 欧美又大粗又爽又黄大片视频| 亚洲精品国产欧美在线观看| av麻豆国产| 久久精品久久久久久国产 免费| 欧美极品少妇videossex| 老司机精品久久| 亚洲最新色图| 精品1区2区3区| 在线精品一区二区三区| 欧美激情在线观看视频免费| 国产亚洲精品福利| 污视频网站免费观看| 日韩精品丝袜美腿| 亚洲免费激情| 伊人久久大香线蕉综合热线| 国产成人精品影院| 日韩欧美亚洲一二三区| 色猫av在线| 国产无遮挡裸体免费久久| 蜜臀在线观看| 成人禁在线观看网站| 一区二区不卡免费视频| 日韩乱码在线视频| 中国老头性行为xxxx| 精品国产人妻一区二区三区| 欧美黑人xxxⅹ高潮交| 久久亚洲国产精品尤物| 亚洲精品大片www| 国产色无码精品视频国产|