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

主頁 > 知識庫 > 如何在Python項目中引入日志

如何在Python項目中引入日志

熱門標(biāo)簽:所得系統(tǒng)電梯怎樣主板設(shè)置外呼 朝陽手機外呼系統(tǒng) 北瀚ai電銷機器人官網(wǎng)手機版 佛山400電話辦理 北京電銷外呼系統(tǒng)加盟 地圖標(biāo)注面積 市場上的電銷機器人 小蘇云呼電話機器人 儋州電話機器人

Logging模塊的使用

簡單使用

Logging 模塊提供了一系列便利的函數(shù)

它們分別是 debug(), info(), warning(), error(), critical()

import logging

logging.debug('debug log test')
logging.info('info log test')
logging.warning('warning log test')
logging.error('error log test')
logging.critical('critical log test')

輸出結(jié)果:

WARNING:root:warning log test
ERROR:root:error log test
CRITICAL:root:critical log test

為什么只輸出了 warning, error 和 critical 的結(jié)果,因為 logging 模塊默認(rèn)使用 warning 日志級別,就是只有 warning 及以上日志等級才會顯示。

日志等級從高到低,如下所示

級別 數(shù)值 何時使用
CRITICAL 50 嚴(yán)重的錯誤,表明程序已不能繼續(xù)執(zhí)行
ERROR 40 由于嚴(yán)重的問題,程序的某些功能已經(jīng)不能正常執(zhí)行
WARNING 30 表明有已經(jīng)或即將發(fā)生的意外,程序仍按預(yù)期進行
INFO 20 確認(rèn)程序按預(yù)期運行
DEBUG 10 細(xì)節(jié)信息,僅當(dāng)診斷問題時適用。
NOTSET 0 無任何等級限制

我們只要把 logging 的默認(rèn)日志等級改下就好了

import logging

# 配置日志等級
logging.basicConfig(level=logging.DEBUG)

logging.debug('debug log test')
logging.info('info log test')
logging.warning('warning log test')
logging.error('error log test')

輸出結(jié)果如下:

DEBUG:root:debug log test
INFO:root:info log test
WARNING:root:warning log test
ERROR:root:error log test

指定日志輸出樣式

當(dāng)然我們還可以指定日志輸出格式

import logging


# 日志輸出樣式
log_format = '%(levelname)s %(asctime)s %(filename)s %(lineno)d %(message)s'
logging.basicConfig(format=log_format, level=logging.DEBUG)

logging.debug('debug log test')
logging.info('info log test')
logging.warning('warning log test')
logging.error('error log test')
logging.critical('critical log test')

輸出結(jié)果如下:

DEBUG 2021-05-27 00:04:26,327 main.py 65 debug log test
INFO 2021-05-27 00:04:26,327 main.py 66 info log test
WARNING 2021-05-27 00:04:26,327 main.py 67 warning log test
ERROR 2021-05-27 00:04:26,327 main.py 68 error log test
CRITICAL 2021-05-27 00:04:26,327 main.py 69 critical log test

其中日志信息格式化輸出配置樣式說明

  • %(levelname)s ,日志等級
  • %(asctime)s ,時間
  • %(filename)s ,文件名
  • %(lineno)d ,行號
  • %(message)s,日志信息

這些配置都是固定,不可隨便寫,還有好多日志格式化樣式,這里只介紹了一些常用的格式配置,大家可以去官網(wǎng)查看更多的格式化配置信息。docs.python.org/zh-cn/3.7/l…

日志記錄到文件中

在 logging.basicConfig 中設(shè)置 filename 屬性即可把日志信息寫入文件中

import logging


# 日志輸出樣式
log_format = '%(levelname)s %(asctime)s %(filename)s %(lineno)d %(message)s'
logging.basicConfig(
    filename='test.log',
    format=log_format,
    level=logging.DEBUG
)

logging.debug('debug log test')
logging.info('info log test')
logging.warning('warning log test')
logging.error('error log test')
logging.critical('critical log test')

運行程序后 test.log 如下內(nèi)容

自定義日志配置

通常我們在項目中都是自定義一些通用日志配置,然后供項目全局使用。寫好這些配置下次要在別的項目使用之間復(fù)制粘貼過來修改修改一下即可。來康康是如何配置的。

準(zhǔn)備日志配置信息

配置日志詳細(xì)信息,需要導(dǎo)入 logging.config 來進行加載日志配置信息

首先準(zhǔn)備日志配置信息字典

log_dict = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已經(jīng)存在的日志器

    # 日志信息格式化輸出配置
    'formatters': {

        # 簡單的日志輸出
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },

        # 詳細(xì)的日志輸出
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(filename)s %(lineno)d %(message)s'
        },
    },

    # 日志信息處理器配置
    'handlers': {
        
        # 向終端中輸出日志
        'console': {
            'level': 'DEBUG',                   # 處理的日志等級,DEBUG及以上
            'class': 'logging.StreamHandler',   # 日志處理器
            'formatter': 'simple'               # 日志格式化配置
        },

        # 向文件中輸出日志
        'file': {
            'level': 'INFO',                                    # 處理的日志等級,DEBUG及以上
            'class': 'logging.handlers.RotatingFileHandler',    # 使用文件日志處理器
            'formatter': 'verbose',                             # 日志格式化配置
            'filename': './logs/test.log',                      # 日志文件存儲位置
            'maxBytes': 1024 * 1024,        # 每個日志文件最大 10MB, 單位: byte
            'backupCount': 20,              # 如果文件滿了, 自動擴充, 最多保留 20 個日志文件
            'encoding': 'utf8',
        },
    },

    # 默認(rèn)根日志器
    'root': {
        'level': 'DEBUG',           # 允許接受的日志等級
        'handlers': ['console']     # 選擇日志處理器
    },

    # 自定義的日志器
    'loggers': {
        'server': {
            'level': 'DEBUG',
            'handlers': ['file'],
            'propagate': True       # 設(shè)為 False則禁止將日志消息傳遞給父級記錄器的處理程序中
        }
    }
}

準(zhǔn)備日志配置信息

配置日志詳細(xì)信息,需要導(dǎo)入 logging.config 來進行加載日志配置信息

首先準(zhǔn)備日志配置信息字典

log_dict = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已經(jīng)存在的日志器

    # 日志信息格式化輸出配置
    'formatters': {

        # 簡單的日志輸出
        'simple': {
            'format': '%(levelname)s %(module)s %(lineno)d %(message)s'
        },

        # 詳細(xì)的日志輸出
        'verbose': {
            'format': '%(levelname)s %(asctime)s %(filename)s %(lineno)d %(message)s'
        },
    },

    # 日志信息處理器配置
    'handlers': {
        
        # 向終端中輸出日志
        'console': {
            'level': 'DEBUG',                   # 處理的日志等級,DEBUG及以上
            'class': 'logging.StreamHandler',   # 日志處理器
            'formatter': 'simple'               # 日志格式化配置
        },

        # 向文件中輸出日志
        'file': {
            'level': 'INFO',                                    # 處理的日志等級,DEBUG及以上
            'class': 'logging.handlers.RotatingFileHandler',    # 使用文件日志處理器
            'formatter': 'verbose',                             # 日志格式化配置
            'filename': './logs/test.log',                      # 日志文件存儲位置
            'maxBytes': 1024 * 1024,        # 每個日志文件最大 10MB, 單位: byte
            'backupCount': 20,              # 如果文件滿了, 自動擴充, 最多保留 20 個日志文件
            'encoding': 'utf8',
        },
    },

    # 默認(rèn)根日志器
    'root': {
        'level': 'DEBUG',           # 允許接受的日志等級
        'handlers': ['console']     # 選擇日志處理器
    },

    # 自定義的日志器
    'loggers': {
        'server': {
            'level': 'DEBUG',
            'handlers': ['file'],
            'propagate': True       # 設(shè)為 False則禁止將日志消息傳遞給父級記錄器的處理程序中
        }
    }
}

其中大字典的 key 都是固定,例如 version,formatters, handlers, root, loggers等都是固定的配置項。而有一些子選項是可以自己自定義如

  • formatters 下的 simple 和 verbose,是可以改成自己想要的名字。
  • handlers 下的 console 和 file 也是可以修改的。
  • loggers 下的 server 都是一樣可以修改的

具體配置的說明,在這字典中都有一一注釋我就不全介紹了,我就介紹一下 handlers 日志處理器的配置

在 logging 模塊中有許多 日志處理器類,我們只需要在 pycharm 中輸入 logging.Handler 就能彈出最基本的幾個日志處理類。

而上文所用到的 StreamHandler 則是流處理器,日志將隨著系統(tǒng)標(biāo)準(zhǔn)輸入、輸出流展示,而我們的 PyCharm終端、控制臺等 顯示的信息就屬于系統(tǒng)標(biāo)準(zhǔn)輸出流。

而 RotatingFileHandler 日志處理器則是 FileHandler 的子類。其主要作用就是把日志寫入文件中,當(dāng)文件內(nèi)容達(dá)到最大限制時可以自動擴充日志文件,以達(dá)到日志文件的輪換。

加載日志配置信息

然后使用 logging.config.dictConfig() 方法加載日志配置,該方法接受一個 字典 參數(shù)。

#!/usr/bin/python3
# -*- coding: utf-8 -*-
# @Author: Hui
# @Desc: { 日志模塊logging的使用 }
# @Date: 2021/05/26 23:14
import logging
import logging.config

log_dict = {
    'version': 1,
    'disable_existing_loggers': False,  # 是否禁用已經(jīng)存在的日志器

    ...與上文一致故省略

    # 默認(rèn)根日志器
    'root': {
        'level': 'DEBUG',  # 接受的日志等級
        'handlers': ['console']
    },
    
    # 自定義的日志器
    'loggers': {
        'server': {
            'level': 'DEBUG',
            'handlers': ['file'],
            'propagate': True       # 設(shè)為 False則禁止將日志消息傳遞給父級記錄器的處理程序中
        }
    }
}


def setup_logging():
    """
    配置日志信息
    :return:
    """
    logging.config.dictConfig(config=log_dict)
    logger = logging.getLogger()
	# logger = logging.getLogger('root')
    
    logger.debug('debug log test')
    logger.info('info log test')
    logger.warning('warning log test')
    logger.error('error log test')


def main():
    setup_logging()


if __name__ == '__main__':
    main()

使用 logging.getLogger() 即可獲取相應(yīng)配置日志器,其接受一個日志器的名字,不傳則默認(rèn)使用 root 根日志器,同 logging.getLogger('root') 效果一致。

如果之間運行程序會出現(xiàn)如下錯誤

ValueError: Unable to configure handler 'file'

那是因為你在日志配置中設(shè)置了一個文件處理器 file ,其日志文件將存儲在 filename 配置項中,在這里是

./logs/test.log		# 代表存儲在當(dāng)前路徑下的 logs目錄下的 test.log 文件

Logging 模塊不會自動幫我們創(chuàng)建目錄,因此只需在當(dāng)前目錄中創(chuàng)建一個 logs 目錄即可。

最后程序運行結(jié)果如下

DEBUG main 74 debug log test
INFO main 75 info log test
WARNING main 76 warning log test
ERROR main 77 error log test

不用跟 root 根日志器,使用 server 日志器,代碼如下

import logging
import logging.config

log_dict = {...同上文省略...}

def setup_logging():
    """
    配置日志信息
    :return:
    """
    logging.config.dictConfig(config=log_dict)
    # logger = logging.getLogger()

    logger = logging.getLogger('server')
    logger.debug('debug log test')
    logger.info('info log test')
    logger.warning('warning log test')
    logger.error('error log test')
    
    
def main():
    setup_logging()


if __name__ == '__main__':
    main()    

運行結(jié)果如下:

控制臺

DEBUG main 75 debug log test
INFO main 76 info log test
WARNING main 77 warning log test
ERROR main 78 error log test

日志文件 logs/test.log

由于 server 日志器設(shè)置了 'propagate': True,會 將日志消息傳遞給父級記錄器的處理程序中,因此不僅控制臺會顯示日志信息,文件也會記錄,但文件記錄的等級被設(shè)置成 INFO 了,因此 DEBUG 調(diào)試日志信息,將不會出現(xiàn)在文件中。

使用日志配置文件

這里我將采用 yaml 格式的日志配置文件。具體配置內(nèi)容和上文大致一樣,多了一個 error_file_handler 錯誤日志處理器,目的就是把 錯誤日志單獨放在一個文件中,方便以后排查錯誤。

創(chuàng)建日志配置文件

創(chuàng)建 logging.yaml 文件,內(nèi)容如下所示

version: 1
disable_existing_loggers: true

# 日志信息格式化輸出配置
formatters:
    simple:
        format: '%(levelname)s %(filename)s %(lineno)d %(message)s'
    verbose:
        format: '%(levelname)s %(asctime)s -Loc %(filename)s -Row %(lineno)d -%(name)s %(message)s'

# 日志信息處理器配置
handlers:
    console:
        class: logging.StreamHandler
        level: DEBUG
        formatter: simple
        stream: ext://sys.stdout

    # 錯誤日志單獨處理
    error_file_handler:
        class: logging.handlers.RotatingFileHandler
        level: ERROR
        formatter: verbose
        filename: ./logs/errors.log   # 錯誤日志文件存儲位置
        maxBytes: 10485760            # 每個日志文件最大 10MB
        backupCount: 20               # 如果文件滿了, 自動擴充, 最多保留 20 個日志文件
        encoding: utf8

    server_file_handler:
      class: logging.handlers.RotatingFileHandler
      level: INFO                     # 只在文件中記錄INFO級別及以上的log
      formatter: verbose
      filename: ./logs/server.log    # 項目日志文件, 記錄所有日志信息
      maxBytes: 10485760             # 10MB
      backupCount: 30
      encoding: utf8

# 根日志器
root:
    level: DEBUG
    handlers: [console]

# 日志器
loggers:
    server:
        level: DEBUG      # 允許打印 DEBUG 及以上log
        handlers: [server_file_handler, error_file_handler]
        propagate: True   # 設(shè)為 False則禁止將日志消息傳遞給父級記錄器的處理程序中

加載日志配置函數(shù)

# log_test.py 文件

import os
import yaml
import logging
import coloredlogs
import logging.config


# 項目根路徑
BASE_DIR = os.path.dirname(os.path.abspath(__file__))

# 日志配置文件
LOG_CONF_FILE = os.path.join(BASE_DIR, 'logging.yaml')


def setup_logging(default_path=LOG_CONF_FILE, default_level=logging.DEBUG, env_key='LOG_CFG'):
    """
    配置項目日志信息
    :param default_path: 日志文件默認(rèn)路徑
    :param default_level: 日志默認(rèn)等級
    :param env_key: 系統(tǒng)環(huán)境變量名
    :return:
    """
    path = default_path

    value = os.getenv(env_key, None)  # 獲取對應(yīng)的環(huán)境變量值
    if value is not None:
        path = value

    if os.path.exists(path):
        with open(path, mode='r', encoding='utf-8') as f:
            try:
                logging_yaml = yaml.safe_load(f.read())
                logging.config.dictConfig(logging_yaml)
                coloredlogs.install(level='DEBUG')
            except Exception as e:
                print(e)
                print('無法加載日志配置文件, 請檢查日志目錄是否創(chuàng)建, 使用默認(rèn)的日志配置')
                logging.basicConfig(level=default_level)
                coloredlogs.install(level=default_level)
    else:
        logging.basicConfig(level=default_level)
        coloredlogs.install(level=default_level)
        print('日志配置文件不存在, 使用默認(rèn)的日志配置')

這里使用到第三方庫如下

  • PyYaml 是用于讀取 yaml 格式的日志配置文件
  • Coloredlogs 用于讓日志在控制臺中有顏色顯示。

然后我們在項目中只要執(zhí)行完 setup_logging() 日志配置函數(shù)

其他模塊直接使用 logging.getLogger('server') 就可獲取我們配置好的日志器。

# log_demo.py 文件

import logging

logger = logging.getLogger('server')  # 維護一個全局日志對象

logger.debug('debug log test')


def log_test1():
    logger.info('info log test')


def log_test2():
    try:
        a = 1 / 0
    except Exception as e:
        logger.error(e)


class LogDemo(object):

    @staticmethod
    def log_test():
        logger.warning('warning log test')


# log_test.py

def main():
    setup_logging()

    logger = logging.getLogger('server')
    logger.debug('debug log test')
    logger.info('info log test')
    logger.warning('warning log test')
    logger.error('error log test')

    # 日志在其他模塊中使用演示
    import log_demo
    log_demo.log_test1()
    log_demo.log_test2()
    log_demo.LogDemo.log_test()
    
    
if __name__ == '__main__':
    main()    

日志效果展示

運行 log_test.py 結(jié)果如下

控制臺信息

全部日志配置文件信息

錯誤日志文件信息

源代碼

源代碼已上傳到 GitHub LogSetupDemo,歡迎大家來訪。

以上就是如何在Python項目中引入日志的詳細(xì)內(nèi)容,更多關(guān)于python 項目引入日志的資料請關(guān)注腳本之家其它相關(guān)文章!

您可能感興趣的文章:
  • python實現(xiàn)自定義日志的具體方法
  • Python 第三方日志框架loguru使用
  • python和websocket構(gòu)建實時日志跟蹤器的步驟
  • 解決python logging遇到的坑 日志重復(fù)打印問題
  • python 實現(xiàn)多進程日志輪轉(zhuǎn)ConcurrentLogHandler
  • python 實現(xiàn)logging動態(tài)變更輸出日志文件名
  • python (logging) 日志按日期、大小回滾的操作
  • 詳解python日志輸出使用配置文件格式
  • python基于pexpect庫自動獲取日志信息
  • Python日志打印里logging.getLogger源碼分析詳解
  • python subprocess pipe 實時輸出日志的操作
  • Python中l(wèi)ogging日志的四個等級和使用

標(biāo)簽:龍巖 商丘 寧夏 酒泉 定西 江蘇 云南 金融催收

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《如何在Python項目中引入日志》,本文關(guān)鍵詞  如,何在,Python,項,目中,引入,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問題,煩請?zhí)峁┫嚓P(guān)信息告之我們,我們將及時溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《如何在Python項目中引入日志》相關(guān)的同類信息!
  • 本頁收集關(guān)于如何在Python項目中引入日志的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    亚洲精选久久| 亚洲色欲色欲www在线观看| 久久成人av网站| 欧美成人a视频| 亚洲国产成人精品一区二区三区| 婷婷久久青草热一区二区| theporn国产在线精品| 99免费视频观看| 国产一级揄自揄精品视频| 精品国偷自产在线| 精品视频在线观看一区| 91精品久久久久久蜜桃| 日韩激情中文字幕| 精品一区二区三区在线播放视频| 欧美激情啪啪| 国产激情精品一区二区三区| 国产精品视频一区二区三区四区五区| 巨大黑人极品videos精品| 欧美午夜aaaaaa免费视频| 成人在线免费观看黄色| 在线观看欧美日韩电影| 国内精品伊人| 日日摸夜夜添夜夜添毛片av| 久久九九99视频| 日本动漫理论片在线观看网站| 久久国产麻豆精品| 久久免费高清视频| 亚洲视频精选在线| 在线天堂资源| 久久综合久中文字幕青草| 欧美日韩中文一区| 77thz桃花论族在线观看| 免费在线国产精品| 中文字幕电影av| 国产在线拍揄自揄视频不卡99| 色偷偷偷在线视频播放| 日韩黄色在线| 久久久无码人妻精品无码| 中文字幕av免费观看| 无套内谢的新婚少妇国语播放| 欧美男男青年gay1069videost| 日本网站在线免费观看| 日韩人妻无码一区二区三区| 天天综合在线观看| 国产内射老熟女aaaa| 久草视频手机在线观看| 蜜桃视频成人| 一区二区三区精品在线| 欧美人善交videosg| 国产日韩欧美不卡在线| 日本黄色福利视频| 97久久精品人人爽人人爽蜜臀| 成人黄色片网站| 国产午夜精品在线观看| 伊人影院蕉久影院在线播放| 91传媒免费观看| 午夜两性免费视频| 婷婷久久免费视频| 日本高清一二三区| 91文字幕巨乱亚洲香蕉| 日韩dvd碟片| 91精品国产一区二区三密臀| 日韩在线视频免费播放| 东京热一区二区三区四区| 亚洲尤物在线视频观看| sese在线视频| www.com.av| 99国产精品久久久久久久成人| 国产青春久久久国产毛片| 3751色影院一区二区三区| 亚洲成人偷拍自拍| 精品福利在线导航| 亚洲色图欧美在线| 欧美精品一二三四| 欧美性狂猛xxxxxbbbbb| 日韩一级完整毛片| a√中文在线观看| 天天操天天射天天| 欧美va在线| 久久天堂夜夜一本婷婷麻豆| 国产在线自天天| 精品精品久久| 亚洲午夜精品一区二区国产| 亚洲免费成人在线视频| 波多野结衣毛片| 2020天天干夜夜爽| 91精品久久久久久9s密挑| 成人精品免费网站| 中文字幕中文字幕中文字幕亚洲无线| 欧美少妇xxx| 久久99国产综合精品女同| 亚洲色图自拍偷拍美腿丝袜制服诱惑麻豆| 韩国三级电影在线观看婷婷| 91蜜桃免费观看视频| 美女污污网站| 韩漫成人漫画| 成人黄视频免费| 国产日韩精品suv| 桥本有菜亚洲精品av在线| 日韩中文字幕久久| 亚洲国模精品一区| 色综合综合色| 成人免费视频毛片| 亚洲国产aⅴ成人精品无吗| 日韩黄色中文字幕| 欧美性受xxxx黑人猛交88| 欧美+亚洲+精品+三区| 狠狠久久五月精品中文字幕| 欧美嫩在线观看| 欧美一级黑人aaaaaaa做受| 日韩精品第一页| 伦伦影院午夜理论片| 免费看裸体网站| 中文字幕乱在线伦视频中文字幕乱码在线| 成人高清在线| 嫩草国产精品入口| av资源网站在线观看| 性欧美xxxx免费岛国不卡电影| 亚洲.欧美.日本.国产综合在线| 久久一夜天堂av一区二区三区| 黄色仓库视频网站| 欧美一区二区三区四区五区六区| 亚洲精品v亚洲精品v日韩精品| 色噜噜狠狠一区二区三区| 亚洲高清在线免费| 色综合久久88色综合天天提莫| 九九视频精品免费| 91香蕉视频污在线观看| 日本免费精品视频| 亚洲精品黑牛一区二区三区| 黄网av在线| 好想男人揉我下面好多水| 国产精品丝袜91| 久久久久无码精品国产sm果冻| 18成年在线观看| 国产永久免费网站| 欧美人与z0zoxxxx视频| 欧美日韩夜夜| 欧美日韩精品在线一区| 中文字幕国产精品一区二区| 四虎国产精品免费久久| 综合激情成人伊人| 欧美成人精品一区二区免费看片| 日本午夜精品久久久| 激情小视频在线观看| 亚洲区综合中文字幕日日| 亚洲另类视频| 亚洲成人手机在线观看| 国产精品九九九九| 欧美videos粗暴| 美女精品视频一区| 成人av蜜桃| 国产成a人亚洲精v品无码| 高清无码一区二区在线观看吞精| 欧美一二三在线| 欧美中在线观看| 亚洲人成电影在线观看网| 精品人妻一区二区免费| 青青青青在线| 中文字幕一区二区三区在线不卡| 五月婷婷色丁香| 国产精品午夜一区二区欲梦| 欧美日韩成人在线视频| 国产91在线播放精品91| www.先锋影音av| 无码免费一区二区三区免费播放| 91麻豆一二三四在线| 国产成人av在线影院| 成人满18在线观看网站免费| 免费观看一级特黄欧美大片| 天堂av在线网站| 亚洲精品免费网站| 激情五月色综合国产精品| 欧美性猛片aaaaaaa做受| 星空大象在线观看免费播放| 加勒比海盗1在线观看免费国语版| 国产人成亚洲第一网站在线播放| 精品久久久久久久久国产字幕| 青青草免费在线视频观看| 日韩电影在线观看永久视频免费网站| 农村少妇久久久久久久| 日本精品在线一区| 国产精品久久久久久久久久久久久久久久| 国产精品极品美女粉嫩高清在线| 麻豆成人免费视频| 亚洲中国最大av网站| 欧美日韩一本到| 亚洲男帅同性gay1069| 在线不卡免费欧美| 日本怡春院一区二区| 中文字幕有码在线观看| 精品国产无码在线观看| 少妇在线看www| 中文字幕免费精品一区高清| 精品制服美女久久| 高清国产午夜精品久久久久久| jazzjazz国产精品久久| 日本夜夜草视频网站| 精品人妻aV中文字幕乱码色欲| 91免费版视频| 成午夜精品一区二区三区软件| 欧美精品xxxxx| 99欧美视频| 欧美日韩在线观看视频小说| 亚洲亚洲精品在线观看| 精品美女被调教视频大全网站| 看亚洲a级一级毛片| 少妇高潮一69aⅹ| 亚洲 欧洲 日韩| 青青草在线观看视频| 91视频福利| 欧美大片国产精品| 人人妻人人藻人人爽欧美一区| 日韩高清国产一区在线观看| 成人图片小说| 日本二三区不卡| 欧美激情在线观看视频免费| 日韩午夜在线播放| 一本大道久久精品懂色aⅴ| 三级视频在线播放| 国产69精品久久777的优势| 欧美视频二区欧美影视| 91福利免费观看| 全部免费毛片在线播放一个| 亚洲人成电影网站色mp4| 欧美精品在线视频| 欧美国产精品久久| 国产91精品免费| 在线观看私人影院w| 亚洲第一偷拍| 希岛爱理中文字幕| 成人性爱视频在线观看| 中文字幕一区日韩电影| 91亚洲永久免费精品| 国产69久久精品成人| 欧美国产日韩一区二区三区| 黄色小视频免费在线观看| 69精品丰满人妻无码视频a片| 亚洲精品国产一区黑色丝袜| 91蝌蚪porny| 日韩国产在线| 亚洲一级免费视频| 亚洲美女视频在线| 波多野结衣有码| 超碰在线观看91| 日韩精品免费电影| 欧美羞羞视频| 亚洲在线精品视频| 欧美日韩在线观看一区二区三区| 亚洲国产高清视频| 国产午夜在线观看| caopeng视频| 日韩国产中文字幕| 潘金莲一级黄色片| 97精品欧美一区二区三区| 成人短片线上看| 成人免费一区二区三区视频| 国产午夜精品一区二区| 国产一区二区三区日韩| 日本免费在线一区| 久久久123| 向日葵视频成人app网址| 三上悠亚影音先锋| 国产一区二区三区黄网站| 日本xxxxwwww| 国产精品高精视频免费| 久久久影视精品| 宅男噜噜噜66国产精品免费| 国产福利三区| 涩涩视频在线免费看| 国产精品25p| 国产一区免费在线观看| 小说区图片区色综合区| av先锋影音少妇| free性欧美69巨大| 嫩草影院入口一二三免费| 91九色在线观看| 成年网站免费观看| 国产不卡视频一区二区三区| 国产免费a∨片在线观看不卡| 欧美伊人久久大香线蕉综合69| 国产亚洲欧美另类中文| 黑人巨大精品欧美一区二区桃花岛| 日韩成人免费在线视频| 亚洲一区二三区| 调教驯服丰满美艳麻麻在线视频| 群体交乱之放荡娇妻一区二区| 国产精品久久网| 国产精品国产三级国产aⅴ原创| 日韩a级作爱片一二三区免费观看| 精品动漫一区二区三区| 狠狠鲁狠狠操| 最新日本在线观看| 久久精品视频免费看| 欧美综合77777色婷婷| 欧美伦理片在线看| 国产精品免费观看高清| 免费网站免费进入在线| 色综合亚洲欧洲| 久久久www成人免费精品| 国产在线精彩视频| 亚洲天堂日韩电影| 日韩成人综合| 亚洲国产精品v| 日韩欧美伦理电影院| 久久99九九99精品| 日本成址在线观看| 女明星视频黄又免费| 无码人妻精品一区二区三区99v| 欧美亚一区二区三区| chinese麻豆新拍video| 久久久久国产精品人| 影音先锋日韩av| 国产免费黄色| 强行糟蹋人妻hd中文| 欧美高清日韩| 国产精品免费在线| 欧美一级欧美三级在线观看| 成人一区二区三区视频在线观看| 欧美mv日韩| 在线播放国产一区二区三区| a黄色在线观看| 香蕉视频免费在线看| 欧美日韩老妇| 91激情视频在线观看| 亚洲高清在线免费| 国产精品国产一区二区| 中文字幕精品一区二区三区在线|