色五月色开心色婷婷色丁香,五月婷婷丁香花综合网,婷婷丁香五月激情综合在线,五月婷婷六月丁香动漫,婷婷丁香五月激情综合在线,丁香花中文字幕在线观看,播五月色五月开心五月网,开心激情综合网,狠狠色丁香婷婷综合最新地址,丁香视频在线观看,狠狠做六月爱婷婷综合av,久久激情五月丁香伊人

ARTICLE DETAIL

資訊詳情

深耕商務(wù)建站與企業(yè)官網(wǎng)運(yùn)營(yíng)的一線實(shí)戰(zhàn)洞察。

acrilog入門:用Python JSON日志告別排查噩夢(mèng)

acrilog入門:用Python JSON日志告別排查噩夢(mèng) 說(shuō)實(shí)話剛接觸 Python 日志這塊時(shí)我一度覺得 acrilog 這名字挺冷門但它解決的是線上服務(wù)最讓人頭疼的問(wèn)題之一日志不好查。先說(shuō)結(jié)論如果你的 Python 服務(wù)部署到服務(wù)器以后還在用默認(rèn)的 logging 輸出“時(shí)間-級(jí)別-消息”這樣的明文日志那在故障排查、日志采集、告警分析的時(shí)候大概率會(huì)被折騰到懷疑人生。尤其當(dāng)請(qǐng)求量大起來(lái)以后日志里每一行都有換行、縮進(jìn)、堆棧信息想從里面按字段篩選簡(jiǎn)直是災(zāi)難。acrilog 就是一個(gè)把 Python 標(biāo)準(zhǔn) logging 輸出改造成單行 JSON 的小封裝輕量、無(wú)侵入幾行代碼就能讓日志從“給人看”變成“既給人看也順便給機(jī)器看”。這篇文章我會(huì)圍繞標(biāo)題里的三個(gè)關(guān)鍵詞展開acrilog 的語(yǔ)法調(diào)用方式、init() 的核心參數(shù)拆解以及幾個(gè)我在真實(shí)項(xiàng)目里用到的實(shí)際應(yīng)用案例。還會(huì)附上自己踩過(guò)的坑和排查思路按我們寫代碼的慣例先給結(jié)論再給過(guò)程能幫你少走彎路。1. 初識(shí) acrilog整體設(shè)計(jì)與核心思路1.1 acrilog 到底做了什么acrilog 的本質(zhì)不是一個(gè)全新的日志框架而是對(duì) Python 標(biāo)準(zhǔn)庫(kù) logging 的一次“格式化升級(jí)”。它主要做的事情可以拆成三塊接收你的配置參數(shù)比如服務(wù)名、日志文件名、日志級(jí)別、是否同時(shí)輸出到控制臺(tái)在 logging 體系里注冊(cè)一套 JSON Formatter把原本一行純文本的日志記錄轉(zhuǎn)成一個(gè) Python dict再通過(guò) json.dumps 變成一行 JSON 字符串寫入目標(biāo)位置可以是文件也可以是控制臺(tái)或者兩者同時(shí)你可以把它理解為“給 logging 換了一身輸出皮膚的皮膚包”。Python 的 logging 本身是分層架構(gòu)Logger、Handler、Formatter 各司其職acrilog 做的事情就是幫你把 Handler 和 Formatter 裝好讓你不用手動(dòng)去組裝那一堆配置代碼。為什么說(shuō)它無(wú)侵入因?yàn)槟阍跇I(yè)務(wù)代碼里依然是用 logging.getLogger(app.order) 這種標(biāo)準(zhǔn)寫法根本不需要引入 acrilog 的日志類。acrilog 只負(fù)責(zé)在程序啟動(dòng)的時(shí)候初始化一次后面的所有日志調(diào)用照舊。這意味著你想在項(xiàng)目里引入它不需要把已有的日志調(diào)用全部改一遍風(fēng)險(xiǎn)很小。1.2 為什么 JSON 日志如此重要很多人覺得日志只要能打出來(lái)就行文本格式也挺清晰的。我舉個(gè)實(shí)際例子你有一條訪問(wèn)日志明文可能是這樣2024-11-11 10:00:00,123 - INFO - api access - user_id1024 cost230ms看起來(lái)還算整潔對(duì)吧但當(dāng)你想統(tǒng)計(jì)今天的平均耗時(shí)、按 user_id 篩選某個(gè)用戶的全部請(qǐng)求、或者把日志導(dǎo)入 Elasticsearch 做聚合分析的時(shí)候傳統(tǒng)文本就麻煩了。你需要寫正則從字符串里摳字段字段一多正則就變成天書而且只要日志內(nèi)容稍微有點(diǎn)格式變化正則立刻失效。換成 JSON 之后日志變成這樣{app: user-service, logger: app.api, level: INFO, time: 2024-11-11T10:00:0008:00, user_id: 1024, cost_ms: 230, msg: api access}Elasticsearch、Loki、ClickHouse 這些日志系統(tǒng)拿到 JSON 以后可以直接解析字段不需要 grok 規(guī)則不需要正則提取mapping 自動(dòng)生成查詢的時(shí)候點(diǎn)字段名就行。這就是結(jié)構(gòu)化日志最大的價(jià)值讓機(jī)器能讀懂日志。而 acrilog 就是幫你把標(biāo)準(zhǔn)庫(kù)輸出快速改造成結(jié)構(gòu)化格式的最省事方案。1.3 為什么選 acrilog 而不是自己封裝有人可能會(huì)說(shuō)JSON 日志我自己寫個(gè) Formatter 也不難何必用第三方包確實(shí)一個(gè)自定義 JSON Formatter 大概幾十行就能寫完。但自己封裝容易忽略幾個(gè)細(xì)節(jié)異常堆棧的格式化、時(shí)間戳?xí)r區(qū)處理、中文編碼問(wèn)題、多 handler 的重復(fù)輸出問(wèn)題、日志文件輪轉(zhuǎn)和目錄創(chuàng)建等。acrilog 把這些邊界情況提前處理好了。更關(guān)鍵的是acrilog 走的是正統(tǒng) logging 體系不是造輪子。它的配置入口只有一個(gè)函數(shù)使用成本低出問(wèn)題的時(shí)候你可以隨時(shí)翻源碼或者退回標(biāo)準(zhǔn)庫(kù)方案。對(duì)中小型項(xiàng)目來(lái)說(shuō)這是性價(jià)比最高的選擇。2. 安裝與基礎(chǔ)用法先把最小配置跑起來(lái)2.1 安裝環(huán)境準(zhǔn)備acrilog 是純 Python 包安裝方式和其他包沒什么兩樣pip install acrilog建議在虛擬環(huán)境里安裝避免污染系統(tǒng) Python。我實(shí)測(cè)常見的 Python 3.8、3.9、3.10 環(huán)境都沒問(wèn)題Python 3.7 及以下版本我沒有驗(yàn)證過(guò)如果你用的是老版本建議先升級(jí)解釋器版本。裝完以后驗(yàn)證一下是否成功python -c import acrilog; print(acrilog.__version__)如果能正常輸出版本號(hào)說(shuō)明安裝沒問(wèn)題。2.2 最小可運(yùn)行配置最基礎(chǔ)的用法在程序入口處調(diào)用 acrilog.init() 就行import logging import acrilog acrilog.init( app_namedemo-service, file_namelogs/demo.log, levelINFO, ) logger logging.getLogger(app.main) logger.info(service started)這段代碼做的事情是初始化 acrilog把日志寫入 logs/demo.log 文件日志級(jí)別為 INFO然后測(cè)試輸出一條消息。打開日志文件看到的應(yīng)該是一行 JSON 格式的日志。這個(gè)文件里包含的時(shí)間、logger 名、級(jí)別、消息、代碼調(diào)用位置等字段就是日志系統(tǒng)最喜歡的東西。這里要提醒的一點(diǎn)是如果你傳的 file_name 帶子目錄先確認(rèn)目錄已經(jīng)存在。我遇到過(guò)某些版本不會(huì)自動(dòng)創(chuàng)建父目錄直接報(bào) FileNotFoundError排查時(shí)很容易忽略這個(gè)細(xì)節(jié)。安全起見可以先寫一句import os os.makedirs(logs, exist_okTrue)2.3 讓日志同時(shí)輸出到控制臺(tái)和文件默認(rèn)情況下acrilog 只寫文件。很多人在本地調(diào)試時(shí)希望控制臺(tái)也能看到日志這時(shí)需要加一個(gè) stream 參數(shù)acrilog.init( app_namedemo-service, file_namelogs/demo.log, streamTrue, levelDEBUG, )streamTrue 表示同時(shí)把日志輸出到控制臺(tái)。注意控制臺(tái)輸出的也是 JSON 格式因?yàn)?acrilog 的邏輯就是“統(tǒng)一格式”。如果你希望控制臺(tái)保持人能看懂的明文、文件里存 JSON那單靠 acrilog 的默認(rèn)配置做不到需要自定義 Handler后面我講案例時(shí)會(huì)提到。關(guān)于日志文件的大小我曾經(jīng)算過(guò)一筆賬假設(shè)每個(gè)請(qǐng)求產(chǎn)生兩條日志一條訪問(wèn)日志大約 300 字節(jié)單機(jī) QPS 100一天下來(lái)日志量是 2 條×300字節(jié)×100×86400秒≈5.2GB。這個(gè)數(shù)字非??捎^。所以日志文件的切割策略一定要提前想好否則磁盤被日志塞滿是遲早的事。acrilog 默認(rèn)的 filemode 是追加模式不會(huì)自動(dòng)按天切割生產(chǎn)環(huán)境建議配合系統(tǒng)的 logrotate或者干脆用 Python 的 logging.handlers.TimedRotatingFileHandler 自己搭建切割方案。3. acrilog 語(yǔ)法與參數(shù)深度解析3.1 先理解 acrilog 的“語(yǔ)法”模式acrilog 不是一門新語(yǔ)言它沒有自定義的 DSL。很多人第一次接觸時(shí)以為要學(xué)一套新語(yǔ)法其實(shí)不需要。acrilog 對(duì)外暴露的用法就是“引入 init() 配置 標(biāo)準(zhǔn) logging 調(diào)用”三段式。說(shuō)它是語(yǔ)法不如說(shuō)是一套“配置規(guī)則”。關(guān)鍵點(diǎn)在這幾個(gè)在程序入口調(diào)用 acrilog.init() 并傳入?yún)?shù)此時(shí)完成全局配置在業(yè)務(wù)模塊里繼續(xù)用 logging.getLogger() 獲取 logger完全不用關(guān)心 acrilog 的存在日志調(diào)用方式不變logger.info()、logger.warning()、logger.error() 都照常使用這套規(guī)則非常簡(jiǎn)單沒有語(yǔ)法糖賣弄學(xué)習(xí)成本幾乎為零。但它有一個(gè)隱含的約定init() 必須在你的業(yè)務(wù)代碼第一次寫日志之前完成否則部分日志可能會(huì)在 acrilog 接管之前就已經(jīng)按默認(rèn)格式輸出了。3.2 init() 核心參數(shù)逐個(gè)拆解init() 是 acrilog 最重要的接口大部分問(wèn)題都出在參數(shù)理解上。我把常用參數(shù)整理成一張表結(jié)合我的使用經(jīng)驗(yàn)逐個(gè)說(shuō)明參數(shù)名類型默認(rèn)值作用說(shuō)明app_namestr無(wú)服務(wù)名寫入 JSON 里的 app 字段用于區(qū)分日志來(lái)源module_namestr無(wú)模塊名可疊加到日志字段中方便識(shí)別模塊file_namestr有默認(rèn)日志文件名日志文件路徑建議顯式指定避免找不到文件filemodestra文件寫入模式a 追加生產(chǎn)環(huán)境不要用 wencodingstrutf-8文件編碼日志含中文時(shí)必須設(shè)為 utf-8levelstr/intINFO日志級(jí)別可用 DEBUG/INFO/WARNING/ERROR 或?qū)?yīng)數(shù)字streamboolFalse是否同時(shí)輸出到控制臺(tái)formatboolTrue是否輸出 JSON 格式置為 False 時(shí)輸出接近 logfmt 的文本datefmtstr無(wú)時(shí)間格式化字符串可按需自定義json_kwargsdict無(wú)傳給 json.dumps 的額外參數(shù)例如 ensure_ascii、indentstacklevelint1記錄日志調(diào)用位置時(shí)向上追溯的棧層數(shù)裝飾器場(chǎng)景會(huì)用這里挑幾個(gè)重點(diǎn)展開。level參數(shù)控制日志閾值。傳字符串 INFO 還是數(shù)字 20 效果一樣因?yàn)?logging 模塊本身就把級(jí)別名映射到數(shù)值。我習(xí)慣用字符串代碼可讀性更高。注意 DEBUG 級(jí)別在線上慎開它會(huì)輸出海量細(xì)節(jié)磁盤壓力非常大。format參數(shù)是 acrilog 的靈魂。默認(rèn) True 表示輸出 JSON。如果你把它設(shè)為 False日志會(huì)變成類似2024-11-11 10:00:00 INFO [app.main] service started這種接近標(biāo)準(zhǔn)庫(kù)的格式。在一些還沒有日志采集系統(tǒng)的項(xiàng)目里這個(gè)模式可以作為過(guò)渡方案。json_kwargs是一個(gè)容易被忽略但非常重要的參數(shù)。比如日志里有中文json.dumps 默認(rèn)會(huì)做 ASCII 轉(zhuǎn)義輸出變成\u4e2d\u6587人眼完全沒法看。解決辦法是傳acrilog.init( ..., json_kwargs{ensure_ascii: False} )這樣中文就能正常顯示。如果你對(duì)接的是日志系統(tǒng)建議不要傳 indent 縮進(jìn)保持單行輸出方便 Filebeat 這類采集器按行讀取。我在本地調(diào)試時(shí)會(huì)臨時(shí)加 indent2人眼看結(jié)構(gòu)方便但線上我一定去掉。3.3 參數(shù)組合與動(dòng)態(tài)調(diào)整參數(shù)之間不是孤立的選型時(shí)要考慮實(shí)際場(chǎng)景。我總結(jié)了幾組常用組合本地開發(fā)streamTruelevelDEBUGjson_kwargs 加 indent方便觀察測(cè)試環(huán)境streamFalselevelINFOfile_name 指向獨(dú)立的 test 日志目錄生產(chǎn)環(huán)境streamFalselevelINFOfile_name 按天命名配合日志輪轉(zhuǎn)有些項(xiàng)目需要?jiǎng)討B(tài)調(diào)整日志級(jí)別比如線上出問(wèn)題時(shí)想臨時(shí)把某個(gè)模塊切到 DEBUG。acrilog 自身不提供運(yùn)行時(shí)改級(jí)別的接口但你可以直接操作標(biāo)準(zhǔn)庫(kù)import logging logging.getLogger(app.order).setLevel(DEBUG)因?yàn)?acrilog 并沒有脫離 logging 體系所以標(biāo)準(zhǔn)庫(kù)的很多玩法它都天然支持。這個(gè)點(diǎn)很多人不知道遇到“項(xiàng)目里能否運(yùn)行時(shí)調(diào)日志級(jí)別”的問(wèn)題時(shí)直接用標(biāo)準(zhǔn)庫(kù)方法就行。還有一個(gè)小技巧如果你想在日志里看到更多調(diào)用上下文比如是哪個(gè)業(yè)務(wù)函數(shù)寫的日志可以調(diào)高 stacklevel。例如在裝飾器或工具函數(shù)里記錄日志時(shí)默認(rèn) stacklevel1 會(huì)指到工具函數(shù)本身改成 2 或 3 可以讓日志文件里的代碼位置指向真正調(diào)用業(yè)務(wù)邏輯的地方。3.4 自定義擴(kuò)展點(diǎn)Formatter 與 Handleracrilog 不萬(wàn)能遇到定制化需求時(shí)你依然可以回到 logging 的生態(tài)里補(bǔ)刀。比如你想要控制臺(tái)是明文、文件是 JSON就可以這么做import logging import acrilog from acrilog.formatter import JSONFormatter acrilog.init(app_namedemo, file_namelogs/demo.log, streamFalse) root_logger logging.getLogger() console_handler logging.StreamHandler() console_handler.setFormatter(logging.Formatter(%(levelname)s - %(message)s)) root_logger.addHandler(console_handler)核心思路是先用 acrilog 把 JSON 文件輸出配好再額外掛一個(gè) StreamHandler用標(biāo)準(zhǔn) Formatter 輸出明文。由于兩個(gè) Handler 的 Formatter 不同文件是 JSON、控制臺(tái)是明文互不影響。如果你是重度定制用戶建議花十分鐘看一下 acrilog 源碼里的 formatter.py弄清楚 JSON 字段是怎么組裝起來(lái)的這樣加自定義字段、改字段名、過(guò)濾字段都游刃有余。它不復(fù)雜就是遍歷 LogRecord 的屬性再 json.dumps 一下。4. acrilog 實(shí)際應(yīng)用案例4.1 案例一FastAPI 接口服務(wù)接入FastAPI 是目前很火的 Web 框架我把 acrilog 接入過(guò)多個(gè) FastAPI 服務(wù)流程很固定。先看代碼import logging import os from fastapi import FastAPI import acrilog os.makedirs(logs, exist_okTrue) acrilog.init( app_nameuser-service, file_namelogs/user_service.log, levelINFO, json_kwargs{ensure_ascii: False}, ) logger logging.getLogger(app.api) app FastAPI(titleuser-service) app.get(/health) def health(): logger.info(health check called) return {status: ok} app.get(/users/{user_id}) def get_user(user_id: int): logger.info(fetch user info, extra{user_id: user_id}) return {user_id: user_id, name: test}接入點(diǎn)有兩個(gè)入口處 init() 一次業(yè)務(wù)代碼里照常用 logger。需要注意 extra 參數(shù)的問(wèn)題。我在實(shí)際測(cè)試中發(fā)現(xiàn)extra 里的字段是否會(huì)出現(xiàn)在最終的 JSON 輸出里取決于你安裝的 acrilog 版本里 JSONFormatter 的實(shí)現(xiàn)。有些版本會(huì)把 extra 合并進(jìn) JSON有些版本不會(huì)。所以如果你依賴自定義字段做查詢一定要先寫一段代碼驗(yàn)證一下logger.info(test extra, extra{request_id: abc123})然后去日志文件里 grep 一下 request_id。如果日志里沒有這個(gè)字段有兩個(gè)解決辦法一是把字段拼進(jìn) message 字符串二是自定義一個(gè) Formatter把 LogRecord 的dict全部展開到 JSON 里。我個(gè)人更推薦第二種因?yàn)檫@樣日志字段更統(tǒng)一。4.2 案例二多模塊多文件分離有的項(xiàng)目模塊分工明確比如訂單模塊、用戶模塊、支付模塊希望日志分開存文件。acrilog 默認(rèn)是一個(gè)配置文件一把梭不會(huì)自動(dòng)按模塊區(qū)分離文件但你可以自己構(gòu)建。方案是這樣的先通過(guò) acrilog 初始化默認(rèn)配置然后對(duì)需要單獨(dú)文件的 logger手動(dòng)掛一個(gè)帶 JSON Formatter 的 FileHandlerimport logging import acrilog from acrilog.formatter import JSONFormatter acrilog.init(app_nameshop, file_namelogs/main.log, levelINFO) order_logger logging.getLogger(app.order) order_file_handler logging.FileHandler(logs/order.log, encodingutf-8) order_file_handler.setFormatter(JSONFormatter()) order_logger.addHandler(order_file_handler)這樣 order_logger 的日志會(huì)同時(shí)寫到主日志和 order.log 里。如果你不希望重復(fù)寫可以把 order_logger 的 propagate 設(shè)置為 False讓它不再向 root 傳遞order_logger.propagate False這個(gè)操作相當(dāng)于為某個(gè) logger 建立了一條獨(dú)立的日志通道適合專題類日志比如支付回調(diào)、第三方接口調(diào)用。這些日志單獨(dú)存放排查時(shí)直接翻獨(dú)立文件效率提高很多。4.3 案例三對(duì)接 ELK 或 Loki 日志采集服務(wù)跑起來(lái)以后日志最終要送到日志平臺(tái)。最常見的是用 Filebeat 采集日志文件然后送到 Elasticsearch。acrilog 在這里的價(jià)值非常明顯因?yàn)檩敵鍪菃涡?JSONFilebeat 不需要任何解析規(guī)則直接按 JSON 采集就行。一個(gè)最小可用的 filebeat.yml 配置片段長(zhǎng)這樣filebeat.inputs: - type: log enabled: true paths: - /data/logs/*.log json: keys_under_root: true add_error_key: true output.elasticsearch: hosts: [localhost:9200]注意 json.keys_under_root 這個(gè)參數(shù)它表示把 JSON 里的字段直接映射到文檔的根級(jí)別查詢時(shí)可以直接用 level、app、logger 這些字段做過(guò)濾。如果用的是 Loki Promtail配置也類似Promtail 對(duì)于 JSON 日志可以通過(guò) json 解析器提取標(biāo)簽scrape_configs: - job_name: demo static_configs: - targets: [localhost] labels: job: demo __path__: /data/logs/*.log pipeline_stages: - json: expressions: level: level app: app這里的 json 表達(dá)式就是把 acrilog 輸出的 JSON 字段映射成 Loki 的 label。沒有 acrilog 的話這一層解析會(huì)痛苦得多尤其在字段多、嵌套深的情況下。4.4 案例四把第三方組件的訪問(wèn)日志也統(tǒng)一成 JSON我在實(shí)際項(xiàng)目里遇到一個(gè)很煩的情況業(yè)務(wù)日志通過(guò) acrilog 全部 JSON 化了但 FastAPI 底層用的 uvicorn 訪問(wèn)日志還是老樣子。日志平臺(tái)里一半是 JSON一半是純文本檢索時(shí)體驗(yàn)割裂。解決思路是把 uvicorn 相關(guān) logger 的默認(rèn) handler 清掉讓它們把日志傳播給 root logger由 root 上的 acrilog Handler 統(tǒng)一輸出 JSON。import logging import acrilog acrilog.init(app_nameapi-gateway, file_namelogs/access.log, levelINFO) for name in (uvicorn, uvicorn.error, uvicorn.access): log logging.getLogger(name) log.handlers.clear() log.propagate True清掉 handler 以后uvicorn 的日志會(huì)向上傳播到 root loggerroot logger 上掛著 acrilog 的 JSON Handler于是所有訪問(wèn)日志都被改造成 JSON 格式。實(shí)測(cè)下來(lái)效果很好日志平臺(tái)里格式完全統(tǒng)一了。這里有一個(gè)注意點(diǎn)清 handler 的操作必須在 uvicorn 開始打印訪問(wèn)日志之前完成所以最好放在入口模塊的最前面。另外如果你關(guān)閉了 uvicorn 的 access log上面的操作對(duì)訪問(wèn)日志無(wú)效因?yàn)楦緵]有日志產(chǎn)生。5. 常見問(wèn)題與排查技巧實(shí)錄5.1 六個(gè)高頻問(wèn)題速查現(xiàn)象可能原因解決辦法日志文件沒生成file_name 目錄不存在或權(quán)限不足先創(chuàng)建目錄確認(rèn)進(jìn)程對(duì)目錄有寫權(quán)限中文變成 \uXXXXjson.dumps 默認(rèn) ASCII 轉(zhuǎn)義init 時(shí)傳 json_kwargs{ensure_ascii: False}控制臺(tái)輸出亂糟糟的 JSON 串streamTrue 導(dǎo)致控制臺(tái)也輸出 JSON關(guān)掉 stream自定義一個(gè)明文 StreamHandler日志重復(fù)出現(xiàn)兩遍init() 被調(diào)用多次root 掛了多個(gè) handler保證 init 只調(diào)用一次重復(fù) handler 時(shí)先清 root.handlers第三方庫(kù)日志還是明文第三方用了自己的 logger 或 handler清除對(duì)應(yīng) logger 的 handlers設(shè)置 propagateTrue日志級(jí)別調(diào)整不生效init 之后又用 basicConfig 重置了 root不要在 init 后調(diào)用 basicConfig用 logger.setLevel 調(diào)節(jié)這里面有一個(gè)坑特別常見不少人習(xí)慣在代碼某處順手調(diào)了 logging.basicConfig()這個(gè)函數(shù)會(huì)在 root logger 上再注冊(cè)一個(gè) handler輕則導(dǎo)致日志重復(fù)輸出重則把 acrilog 配置的 JSON Formatter 覆蓋掉。排查時(shí)如果發(fā)現(xiàn) JSON 格式突然失效優(yōu)先懷疑是不是有人調(diào)了 basicConfig。還有一個(gè)關(guān)于 streamTrue 的體驗(yàn)問(wèn)題。開發(fā)時(shí)開著 stream 確實(shí)爽但控制臺(tái)輸出的 JSON 字符串通常很長(zhǎng)日志一多眼都花了。我的習(xí)慣是本地調(diào)試時(shí)把 json_kwargs 里加 indent2線上再改回單行。雖然多寫幾行配置但調(diào)試體驗(yàn)提升明顯。5.2 排查思路與避坑筆記如果你已經(jīng)接入 acrilog卻發(fā)現(xiàn)日志行為不符合預(yù)期我的排查順序通常是這樣第一步用最精簡(jiǎn)的腳本復(fù)現(xiàn)。單獨(dú)寫一個(gè) py 文件只做 init 和一條 INFO 輸出看結(jié)果對(duì)不對(duì)。如果最小復(fù)現(xiàn)正常說(shuō)明問(wèn)題出在業(yè)務(wù)代碼里比如 init 被多次調(diào)用、某個(gè) logger 被單獨(dú)設(shè)置了 handler。如果最小復(fù)現(xiàn)也不正常多半是版本問(wèn)題或安裝問(wèn)題重新確認(rèn) acrilog 版本和 Python 版本。第二步檢查 logger 的傳播關(guān)系。Python logging 的日志傳遞符合“子 logger 沒有 handler 就往父級(jí)傳播”的規(guī)則。你寫 logger logging.getLogger(app.order) 時(shí)如果 app.order 這個(gè) logger 本身有 handler消息就不會(huì)往 root 走acrilog 配置的 JSON Handler 自然收不到。很多“JSON 格式只對(duì)部分模塊生效”的問(wèn)題都出在這里。第三步看 JSON 里的時(shí)間字段。默認(rèn)輸出的時(shí)間有時(shí)帶微秒和時(shí)區(qū)信息這對(duì)接入 Elasticsearch 很友好但如果你的日志系統(tǒng)對(duì)時(shí)間格式有要求就需要自己調(diào) datefmt。舉個(gè)例子我希望日志時(shí)間精確到毫秒且?guī)r(shí)區(qū)可以設(shè)置acrilog.init( ..., datefmt%Y-%m-%dT%H:%M:%S.%f%z )這個(gè)格式是 ISO 8601 風(fēng)格Elasticsearch 可以直接識(shí)別不用另外做日期格式轉(zhuǎn)換。再說(shuō)一個(gè)容易被忽略的生產(chǎn)問(wèn)題日志文件切割。acrilog 本身不做按大小或按天的自動(dòng)輪轉(zhuǎn)生產(chǎn)環(huán)境日志量一大日志文件會(huì)變成一個(gè)幾十 GB 的巨型文件到時(shí)候別說(shuō)采集了連打開文件排查都卡。我的做法是把 acrilog 輸出的日志文件名設(shè)計(jì)成帶日期的固定命名比如 logs/app-20241111.log然后交給系統(tǒng)的 logrotate 或其他日志輪轉(zhuǎn)工具去處理。如果你不太想在系統(tǒng)層面配置可以在代碼里手動(dòng)調(diào)用 TimedRotatingFileHandler 完成輪轉(zhuǎn)from logging.handlers import TimedRotatingFileHandler handler TimedRotatingFileHandler( logs/app.log, whenmidnight, backupCount7, encodingutf-8 )設(shè)置 backupCount7 表示只保留最近 7 天的日志。這個(gè)數(shù)值怎么定我建議根據(jù)你的磁盤容量和單日日志量算一下寧可多留兩天也不要因?yàn)槿罩颈磺宓魧?dǎo)致丟了關(guān)鍵排查線索。5.3 用 jq 快速排查 JSON 日志日志全部變成 JSON 之后日常排查其實(shí)變得更爽了因?yàn)槟憧梢灾苯佑?jq 命令做結(jié)構(gòu)化篩選。這在服務(wù)器上沒有 Kibana、沒有 Loki 的情況下尤其好用。比如我想找出今天所有 ERROR 級(jí)別的日志cat logs/app.log | jq -c select(.level ERROR)想看某個(gè)用戶 ID 相關(guān)的日志cat logs/app.log | jq -c select(.user_id 1024)按時(shí)間范圍過(guò)濾cat logs/app.log | jq -c select(.time 2024-11-11T00:00:00) | {time, level, msg}這一套操作在線上應(yīng)急排查時(shí)非常高效。以前我遇到問(wèn)題都是 grep 一串字符串再對(duì)著多行明文日志猜結(jié)構(gòu)現(xiàn)在直接 jq 一條命令結(jié)果一目了然。這也算是我用了 acrilog 之后意外收獲的一個(gè)排查習(xí)慣。提示jq 是 Linux 環(huán)境下的 JSON 處理命令行工具沒有的話用 yum install jq 或 apt install jq 裝一下幾十 KB 的大小排查日志非常值。寫在最后的一點(diǎn)體會(huì)acrilog 這個(gè)包不大代碼量也不算多但它在“讓日志從人能看變成機(jī)器也能看”這件事上幫我省了非常多的時(shí)間。我在幾個(gè)生產(chǎn)項(xiàng)目里接入之后最大的感受是去日志平臺(tái)檢索問(wèn)題時(shí)不再依賴正則和字符串匹配直接按字段拖拽組合查詢排查效率提升了一個(gè)量級(jí)。如果你只是一個(gè)小腳本、一個(gè)一次性的任務(wù)用不用 acrilog 都無(wú)所謂但只要你做的是長(zhǎng)期運(yùn)行的服務(wù)或者已經(jīng)接入了日志采集平臺(tái)我非常建議花十分鐘把日志切換到 JSON 格式。acrilog 是一個(gè)不錯(cuò)的起點(diǎn)它的學(xué)習(xí)成本幾乎為零退出成本也低——就算將來(lái)不滿足需求你也能輕松回到標(biāo)準(zhǔn) logging 生態(tài)里做自定義改造。最后再分享一個(gè)小技巧接入 acrilog 之后可以在項(xiàng)目的初始化腳本里加一句自檢日志輸出 acrilog 的版本號(hào)和當(dāng)前配置。這樣你排查問(wèn)題的時(shí)候第一眼就能判斷線上跑的是哪個(gè)版本的包、配置是否生效避免在版本不一致上花時(shí)間。項(xiàng)目越來(lái)越大以后這個(gè)習(xí)慣能幫你省掉很多無(wú)謂的猜測(cè)。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
男人天堂导航| 精品久久久久,69国产成人精| 99色色网| 亚洲玖玖爱| 狠狠色噜噜狠狠狠狠2018| 五月天婷婷小说| 午夜精品久久久99热蜜桃的功能特点| 欧美性爱第一页久久| 最近2019中文字幕国语免费版| 黄色AAAAA欧美| 97日视频| 丁香婷婷久久 | 91美女视频在线观看| 国产92麻豆天美精品色欲5| 久久久久久波多野吉衣高潮| 国产一级特黄大片处女| 久久本道| 日本二区不卡| 欧美成人都市人妻| 97欧美视频| 九九毛片这里只有精品| 内射小黄片| 青青草日逼视频| 97色色色| 99国内精品| 综合网欧美| 亚洲色婷婷| 噜噜噜亚洲精| 女同在线视频一区| 91爱| 天天影视网综合少妇| 限制级中的三级片中的黑粗大屌屌日人妻熟女 | 日韩性爱网址| www久久国产精品| 99re这里只有精品3| 色区97| 色五月激情综合网| 好吊色综合| 欧美激情高清性猛交| 偷窥自拍A片| 97国产精品一区二区传媒公司| 天天干天天拍| 亚洲国产精品成人综合| 久久鲁夜| 久久精品国产亚洲AV成人直播| 久久久久96| 免费夜夜爱黄色视频毛片| 超碰色97| 日本孕妇孕交| 美国美女AV在线| 国产一级内射无挡观看| 大香蕉99re| 啊啊啊操一区| 日本人妻中文字幕精品| 啊啊啊啊啊啊啊啊啊在线观看| 激情五月天丁香社区| 97超碰欧美中文字幕| 久久久工口| 亚洲精品三区在线观看| 久久日韩肥臀| 女人精品内射国产99| 国产乱弄免费在线视频。 | 情色大香蕉| 亚洲 无码 偷拍| 青青草依人大香蕉| 天美av在线观看| 国产一区二区在线播放量| 亚洲国产精品久久久男人的天堂| 99免费在线视频| 日本精品五区| 1204人成网站色www| 九九综合久久| 在线v中文字幕一区二区三区| 日日夜夜摸| 日韩熟女视频二区| 日日夜夜草草草| 久久久久久久久久8888| 日韩中文字幕国产| 91天堂| 色诱avtt| 小泽玛利亚一二三| 新久久AV| 东北少妇高潮zzzz| 99av| 美女爽到高潮91| julia在线观看久久| 国产女人9999| 丝袜综合| 亚洲日产专区| 无码操逼网| 人妻精品视频一区二区三区| 桑老女人九区| 97一本大道亚洲一区| 丁香六月啪| 欧美αv.com| 视频不卡中文字幕| 这里只有97精品| 91无码人妻| 国内精品不卡无毒99999| 人人操人人狠狠操| 亚洲国产精品成人无码久久久 | 亚洲电影中字一区二区| 射综合网| 日韩射精| 天天综合网网欲色| 四虎在线观看视频| 精品久久久av无码免费| 97色色色| 天天狂操夜夜狂日| 国产一二三福利视频网| 97就爱干| 天综合网欧美| 激情小说亚洲视频| 久久一二三四五六七八九区| 激情婷婷丁香网| 国产精品一区二区后入| 操老熟女AV| 人妻爽爽啪视频| 亚洲欧美校园另类春色| 九九九久久久| 漂亮人妻被强中文字幕hd| 亚洲精品国产熟女久久久| 久久最新视频免费观看| 日日干夜夜欢| 日韩欧美麻豆| 久草线上视频免费看| 美女91在线观看| 亚洲 欧美 小说| 东北女人的毛片| 日本一片一区| 天天综合网AV91| 亚洲色图综合网| 男人的天堂在线| 91伊人久久在线| 亚洲综合色在线| 欧美后入式| 99超碰网| 国产高清亚洲日韩一区 | 亚洲无码 国产无码| 91春色| 日韩强奸av| 精品无码久久久久久国产浪潮| 精品国产91内射久久| 国产一区二区在线播放量| www.久久制服糖| 高清无码一区二区三区| 亚洲国产精品无码AV在线| 精品黑人一区二区| 五月天激情小说| 久妇网| 亚洲蜜臀懂色| 亚欧美色图| 超碰综合97在线| 啊啊啊啊啊啊啊啊视频| 99re这里只有精品3| 亚州综合色图| 91亚洲网| 九九色影院| 亚洲色堂免费视频| yy少妇精品久久| 亚洲91综合| 亚洲欧美综合| 一区二区视频在线播放| 人人色97| 国产天天看| 国产成人精品一区| 三男一女不戴套的A片| 一区二区三区在线美女| 国产精品麻豆成人AV艾秋| 日韩在线97| 午夜九九| 国产精品不卡一区二区三区av| 八戒午夜福利理论片| 亚洲成?V人片在线观看福利| 性性久久| 免费试看60秒| 色丁香久久| 暖暖精品二区三区观看| 高精欧美色| 一本精品日本在线视频精品| Julia在线播放亚洲久久| 欧美亚洲美少妇一区二区| 四方色播| 在线视频日韩欧美国产| 嗯嗯啊啊视频一区二区三区| 青青免费在线视频一区| 欧美一区二区传媒| 香蕉视频精品亚洲一区二区三区在线播| 久久国产AⅤ| 又大又白奶子| 强奸乱伦中文字幕AV| 97午夜剧场日韩| 久热这里| 91三级理论片播放器| 在线女人91| 91女日逼| 色婷婷丁香五月天| 97欧美久久久久久久| 麻豆视频一区二区| 免费观看有码高清视频| 9118禁| 99视频内射三四| 美女骚尻视频| 亚洲砖码砖专无区2023| 蜜臀久久在线视频| 1769精品一区二区三区| 欧美日本不卡在线| 99九九久久| 国产一区二区精品久久久不卡蜜臀| 亚洲国产一区二区入口| 怡红院亚洲怡春院av| 2023天天操夜夜操| 国内操逼视频二区| 天天干天天燥| 亚洲熟女一区| 天天日B夜夜干B时时操B| 四虎在线观看网站| 桃花色综合影院| 亚洲射综合网| 亚洲色图亚洲无码强奸乱伦| 国产精品久久久| 婷婷99狠狠| 亚洲丝袜二区在线| 日本一二区免费| 肏逼视频日本| 国产少妇内射| 日本免费中文一区二区三区四区| 久久精品黄色| 欧洲色| 中国人高清www色视频免费| 国产丝袜美女诱惑| 综合久久久久久久综合网| 亚洲色图 欧美热图 清纯唯美 另类自拍 | 久久久久久中文| 国产一区二区在线电影| 超碰97国产欧美| 天天综合色| 3PAV乱伦视频| 国产又大又粗又长视频在线| 在线观看AV片| 人妻色偷色噜| 视频在线97| 久久香蕉国产传媒一区剧情天美| 蜜臀一区二区三区在线| 91精品久久久久久| 日韩无码嘿咻黑热久| 1769成人国产精品视频| 亚洲性猛| 情侣开房子拍 日韩无码 女的很漂亮| 99re免费视频精品全部| 土豪酒店各种姿势玩弄极品幼稚| 99热久| 久久 国产 无码| 免费亚洲国产精品久久一区| 99视频自拍| 97视频在线| 欧美日韩亚洲五月天婷婷| 嗯啊抽插大香蕉网页| 性欧美999| 九九玖玖精品| 国产操逼逼网| 欧美精品二区视频在线| 欧美丰满少妇交换91欧美精品| 超碰三级秋霞| 国产欧美一区激情交| 一二三区操逼国产91| 久久高清无码夜夜操| 中文高清一区二区的| 日本 色 导航| 国产色产精品在线观看| 亚洲人妻久久久| 久久熟女人| 黑人无码一区二区| 性videos欧美熟妇hdx| 啊啊啊啊,啊啊好多水| 久久av色| 亚洲午夜免费狠狠干| 人人潮人人摸| 久久免费99精品久久久久久| 亚洲无码偷拍| 超碰99在线| 嗯~啊~快点 死我视频免费看网站| 欧美极品女人的天堂| 国产懂色精品国产av| 天天视频网站黄| 婷婷性网| 超碰97人人乐| 亚洲欧美在线综合| 樱花草社区www中国| 91成人精品在线播放| 男人把坤坤插入女人的下体 | 國產尤物AV尤物在線觀看| 91中出视频| 亚洲欧美不卡线| 啊灬啊灬啊灬啊灬高潮奶出了免费视| 亚洲成人一二三区| 欧美日韩成人在线| 色5月婷婷| 91动漫操逼视频| 亚洲图片日本AⅤ欧美在线| 国产噜噜噜噜噜久久久久久久久| 75大香蕉| 精精夜夜| 99国内精品| 精品区9| 国产亚洲99久久精品| 天天操天天舔| 青青草丝袜在线视频| 人人摸.人人色| 午夜成人爽爽爽爽A片李冰冰| 福利大香蕉| 少妇高潮喷水无套久久久久久| 亚洲综合小视频小说在线观看| 国产67194| 亚洲成av人片色午夜乱码| 亚卅熟女乱色| 黄色小视频日本txt| 久久国产熟女影院| 国产亚洲精品美女久久久久久2021| 无码人妻一区二区三区色欲aⅴ| 亚洲欧洲无码bt精品合集| 亚洲欧洲日本精品中文a∨| 少妇久久久久久久久| 999精品乱码| 加勒比综合a∨| 偷拍亚洲情色| 男人的天堂1024| 亚洲一二三四区| 欧美成人一级麻豆| 精品中文字幕第一页| 亚洲日韩视频二区| 日本乱人伦片中文三区| 女欧美一区二三区| 日韩乱中文| 国产精品成人无码av无码免费| 日韩黄色一区二区三区| 免费观看的av| 久久精品一区| 精品视频一区二区| 精品国模无码| 在线无码操| 91黑丝露脚| 99久久这里只有精品| 日日干男人的天堂| 九九九九精品视频| 无码人妻精品一区二区三区99不卡| 91丨豆花丨熟女| a级成人毛片免费视频高清| 大香蕉乱伦视频网| 99天天超碰| 久久久久久久久久久久欧美日| 黄页网站成人免费| 激情熟女12P| 九九性爱网| 啊啊啊用力在线观看| 91网站视频在线观看| 色哟哟av| 国产黄色在线播放观看| 亚洲日韩美女中文字幕乱| 丁香五月色| 日韩精品第3页| 欧美综合色,www| 中文字幕日韩人妻视频| 久久激情视频| 成熟熟女国产精品一区二区| 九九九九热只有精品| 亚洲 欧美 精品专区 极品| 69精品久久久久中文字幕| 久久超碰爱| 精品中文一区二区| 日本伦乱九九九综合| 色官网在线| 97色色色综合网站| 亚洲婷婷综合网| 高清无码国产亚洲| 黑丝少妇| 色色97爱| 丁香婷婷九月| 东北女人操比视频| 国产精品人妻一区二区| 婷婷五月天影院| 亚洲日韩乱码中文无码蜜桃臀网站| 日本道日本道中文字幕日本道最新日本道在线观看 | 国产精品在线网站| 日本不卡在线二区三区| 伊人黄色片| 久久久9视频| 加勒比综合88| 精品国产精品一区二区| 尤物视频网 刘玥| 亚洲av综合伊人久久| 亚洲欧洲小说图片视频| 久久久青青草| 五月天玖玖资源站| 伊人97色天使| 日本视频在线中文字幕| 久久久久免费少妇| 夜夜春夜夜操| 色五月婷婷麻豆在| 亚洲 日本 不卡| 在线观看综合精品亚洲| 夜夜爽夜夜摸夜夜操免费视频| 日韩激情啪啪啪| 超碰性爱97| 91精品国产91久久福利| 人妻天天爽夜夜爽爽| 啊啊啊好舒服视频| 天美传媒国产原创中文字幕亚洲欧美另类| 欧美色97| 丁香五月天堂网| 国产搭汕a级片| 99热国产| 欧美翘臀视频网站一区二区三区| 亚州伊人色综台| 激情小说亚洲色图| 黄色二级片网站| 女沟厕偷窥piss小便| 天天摸天天插天天日| 中国人高清www色视频免费| 九九视品黄色| 黄片视频观看| 蜜桃臀AV在线| 人人人人人人少妇| 国产一区二区三区高清视频| 97色视频在线| av片在线观看免费播放| 999久久久九九九九| 尻女朋友一夜| 久久久9999| 97亚洲资源| 国产AV精久久| 日本 情色 1区| 韩国一级做A片免费的| 精品美女少妇一区二区| 亚洲s在线观看| A级国产欧美激情在线| 超碰97最新人妻| 精品黑人一区二区| 91狠狠综合| 99综合自拍| 老司机射| 97视频在线播放| 麻豆AV96熟妇人妻| www.99中文字幕| 亚洲成成熟女人综合一区二区| 狠狠综合网| 1769一区| 青青草在线视频播放器| 观看免费区二区三区二| www成人啪啪18秘 免费| 亚洲欧美日韩中文播放| 2019天天操天天爽天天拍| 中文字幕国产| 久9九综合在线| 色婷婷婷五月天激情四射| 日本一区二区成人在线| 东京热不卡视频| 在线观看国产黄色| 成人免费性爱视视| 97超级久久| 久草在| 日本高清电影欧美色图| 丰满高潮18xxxx| 亚洲春色一区二区三区| 凹凸 69堂 在线播放| 日本999精品视频| 97人人干| 无码操逼网| 午夜美女诱惑电源网| 激情五月综合网| 青娱乐国产精品| 自拍内地三级在线观看| 欧美日韩人妻婷婷一区| 91网站18在线观看| 精品国产肉丝袜在线拍国语| 国产日韩精品人妻久久久久色欲网站| 超碰2017| 午夜噜噜噜| 国产精品午夜福利视频| 国产AV天美| 天天日日舔舔| 少妇二级| 亚洲天堂,男人| JULIA一区二区三区在线播放| 爱爱动态60秒| 91爱网| 操一对老熟妇爽上天视频| 人妻熟女一区二区| 久偷拍欧美日韩三区| 欧美在线色图| 操操操操操操| 好看的91视频| 亚洲www91| 欧美亚洲激情| 91亚洲色图| 国产精品乱码久久久久| 欧美第五页| 狠狠操狠狠燥| 久久精品一区一起草| 91色s| 道久久五香丁月婷婷激情综合| 97超碰免费人人性爱| 中文字幕日韩精品一区二区三区| 绯色AV粉色AV蜜臀AV| 啊啊啊啊视频免费| 香蕉一区二区三区在线视频| 婷婷五月影院| GVH-003 母子姦 青木玲-麻豆视频,麻豆视传媒短视频网站入口,麻豆视传媒官网直 | 91中出在线| 乱人乱色一区二区三区免费| 南澳成人一级片在线播放| 色踪合AV| 亚洲第一视频 欧美风情 日韩| 日本一卡二区在线| 亚洲色图欧美色图另类图片| 亚洲啪啪综合?v一区综合精品区| 午夜成人爽爽爽爽A片李冰冰| 成人a v在线播放免费| 啪啪啪精品| 黑人狂躁日本妞一区二区三区| 欧美大香蕉专区网| 乱伦日本色图AⅤ| 国产中文字幕曰本毛片| 丁香五月婷婷基地| 色婷婷六月| 日韩三级久久久| 麻豆性爱视频在线播放| 中文字幕综合人妻| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | A V少妇特黄三级| 亚州精人品大香蕉| 日韩操呦呦影院在线观看| 亚洲综合色在线| 操一对老熟妇爽上天视频| 男人亚洲天堂| 亚洲啪啪视频一区二区| 婷婷色色网| 嗯啊不要啊啊在线观看视频| 裸体1区| 99999亚洲| 日韩av免费一级电影| 日韩av不卡在线观看| 中文字幕日韩综合| 97一区二区蜜臀| 久久人人爽av亚洲精品天堂桃色| 97视频免费播放| 精品中文字幕第一页| 另类天堂| 天天爽夜夜欢视| 亚洲色资源| 99999re| 国模艳艳啪啪一区| 91在线页| 国产91丝袜 在线播放| 久久青青草原免费视频| 3571色综合一区二区二区| 五十路熟女工口| 99热这里都是精品| 性开放中文AV高清无码免费看| 欧美一区二区亚洲天堂| 日韩精品99久久久久久中文字幕 | 超碰 另类 欧美| 四季av一区二区凹凸精品小说| 亚洲国产美女久久久久| 国产精品久久久久中文字幕| 久久这里都是精品| 青青操在线视频| 欧美日韩不卡a片| 97视频观看| 91丝袜美腿片| 中文人妻av高清一区| 欧美九9 9 9| 精品一区二区久久| 日韩免费福利在线观看| 日韩国语字幕| 青青草大香蕉视频| 成人性爱电影一区二区| 欧美在线视频播放| 天天爽夜夜爽夜夜爽精| 麻豆久久久久久久久丝袜| 亚洲第一视频 欧美风情 日韩| 沈阳熟女高潮对白视频| 艹我哪美一区无码| 97视频播放| 中文字幕性感少妇av| 美日韩一二三区| 91精品微拍福利| 91色爽欧美| 91社区伊人| 国产原创精品| 99久久久| 91五月天| 欧美日韩在线小说 | 骚女高跟AV在线| 久艾草在线精品视频在线观看| 97摸视频| 精品成人久久久人人亚洲| 国产精品自在自拍视频| 亚洲色综网| 一区二区视频在线播放| 亚洲久草AV色图| 国产精品久久久鸭无码的功能| 日韩中文字幕精品一二三事国产精品| 亚州色综合| 好湿好紧好爽 视频| 欧美亚洲| 成人老鸭窝人人在线视频| 一区二区三区免费视频入口| 国内精品久久国产,www香蕉久久五月丁香,亚洲欧美日韩精品永久在线,日本精品一 | av天天在线| 老熟妇一区二区三区…| 精品国产久久乱码| 国产女人极品高潮毛片| 久久噜| 亚洲aV性爱| 亚州性色| 青青草日逼视频| 成人自拍三级在线观看| 国产一区二区久久| 中文字幕91页| 色av中文字幕| 一区三区啪啪| 蜜臀久久99精品久久久久久-DVD| 九九久久一区二区三区| 911av网站免费观看| 熟妇高潮二区三区| 亚洲高潮少妇| 啪啪啪东京| 亚洲极品| 91最新综合| 91在线免费精品视频| 曰本精品久久久| 国产精品 久久久精品一牛| 人妻喷水| 国产性刺激| 熟女六十路| AA丁香综合激情| 青草成人免费视频一com| 97天天操天天干| 精品黑人一区二区| 色婷婷国产精品一区在线观看| 91老熟女逼| 亚洲国产成人精品无码专区| 青青久久艹| 老女人碰碰在线碰碰视频| 99性爱视频| 天天谢天天干| 97爱亚洲| 久久久久96| 中文字幕片| 超碰人人在线| 强奸国产精品视频| 中文字幕在线第二页| 污到发麻的视频 国产| 天堂8在线新版官网| 亚洲影院无码在线| 男人的天堂无码| 国产久久视频| 伊人久久婷婷| 人干人人人操人人摸| 97色综合中文网| 成人在线午夜视频一区| 成人欧美一区二区三区黑人一| 国产无码精品高清| av网站免费看| 婷婷丁香人妻| 亚洲熟女偷拍在线观看| 日韩AV一区二区三区三州三州| 操99| 国产精品亚洲一区二区三区四区| 九九九九九九综合| 国产精品粉嫩福利在线| 超碰人妻中文在线| 97AV爱| 天天干美少妇一区| 精品国产精品一区二区| 亚洲日韩精品一区视频在线| 激情五月天中文字幕色| 一区二区三区四区在线不卡| 躁躁日曰躁2020| 亚洲综合五月天婷婷丁香| 人人干人人操人人..com| 国产精品操| 热热色综合网| 青青操视频在线| 亚洲色图国产另类| 欧美曰韩国产精品| 夜夜騷av、一區二區| 国色天香av| 性做久久久久久免费观看软件| 奇米狠999| 欧美色www亚洲国产阿娇要播| 一起草在线视频| 伊人操操| 96国产污污污丝袜| 性性欧美| 天天草AV| 啊啊啊轻点在线观看| 黄色一区三区| 91黄射| 久久av色| 日本欧美色| 亚洲熟女乱综合一区二区三区| 嗯嗯啊啊视频一区二区三区| 大香蕉在线视频重口味毛片在线| 久久999久| 亚洲国产精品久久久男人的天堂| 综合视频91| 2020中文字幕在线| 日本高清熟女久久一区| 97网址97| 我爱大香蕉| 精品国产精品一区二区| 日亚韩精品视频二区三| 人人色人人操在线| 亚洲一区二区麻豆影院| 九九热免费国产视频婷婷伊人| 日韩内射视频| 91路www| 欧美激情黑人| 超碰9 7女人 | 中文字幕一区二区三区四区在线视频| 伊人久久综合影院精品久久久| 久久久久久69国产一区二区| 亚洲欧洲综合成人av一区| 国产精品极品美女视频| 久久久99免费| 亚洲av淫乱| 玖色AV| 青女在线| 国产女人9999| 偷拍新久久| 精品一区二区2| 97色97干| 日韩欧美中文日韩欧美色| 亚洲欧美精品福利在线| 亚洲……91| 色综合20p| 欧美不在线| 91丝袜在线观看| 性做久久久久久久| 999日韩中文精品观看视频。| 骚逼一区二区| 色香av| 日本操色导航| 韩日精品四区| 免费超碰97久久| 岛国天天午夜影院传媒网| 亚洲欧美综合| 人妻精品一区二区在线| 四虎影库国产精品免费| 国产九九九九九九| 0755午夜福利视频| 久久久精品电影| 中文字幕成人理论在线| 激情网五月天| 狠肏骚人妻| 久区视频| 免费在线黄片视频| 嗯啊不要啊啊在线观看视频| 久久精品噜噜噜成人看免欧美大片| 91色综合| 五月丁香六月| 啊啊啊啊好大好硬啊啊啊啊啊 | 国产精品视频内谢女人| 国模精品娜娜一二三区| 久久超碰、| 亚洲综人| 婷婷五月天久久精品视频一区二区三区| 土豪酒店各种姿势玩弄极品幼稚| 麻豆av一区二区| 91爆操视频| 亚洲另类在线观看| 日本免费一区二区不卡| WWW操逼| 欧美亚洲国内自拍| 78m成人视线| 欧美色青| 欧美日韩999| 东京热伊久| 嫩草影院在线观看精品| 99精品网站| 91操操操操| 91N欧美| 99国产天美| 风月影院十八禁| 农村妇女一级二级三级视频| 夜草欧美| 人妻一区二区三区视频| 久久久婷婷| 97精品全部| 不卡免费av在线播放| 激情图片亚洲色图| 2021国产成人精品久久| 国产11页| 我要色综合网| 熟女突然公开看18禁影片| 国产25页| 亚洲欧美日韩免费电影| 熟女一区二区三区| 人人操人人色人人摸| 日韩熟女精品无码专区一区二区 | 青青草日韩无码| 成人性交免费视屏| 成人 日韩欧美一区| 后入日本1234| 欧美色五月| 丰满人妻一区二区三区免费| 婷婷五月天综合网| 骚女天天综合网| AV天堂丝袜| 亚洲欧美高清无码| 亚洲精品一区二区三区新线路| 2017天天拍大香蕉| 久久久久久AV无码免费网站| 亚欧美色图| av九九| 国产精品免费久久久久久久久久| 热久久无毒不卡| 欧美中文字幕男人天堂久久精品 | 人妻丰满熟妇av无码区蜜桃| 亚洲aV无码成人在线观看| 性生活性生大爱77AV国产| 色婷婷99| 成人毛片免费| 狠色婷婷久久一区二区三区_| 精品中文字幕一区二区l - 百度| 蜜桃午夜视频一区二区 | 国产25页| 国产一区二区三区影片| 欧美综合自拍亚洲综合图| 韩国黄色片精品久久久| 国产精品操| 国产丰满少妇久久久精品影院| 欧美色www亚洲国产阿娇要播| 伊人国产视频| 秋霞网—男女啪啪亚洲免费体验区| 天堂射| 蜜臀操逼黄色视频操的好爽| 神马麻豆福利院| 婷婷三区| 亚洲超碰AV| 舔舔啊| 精品夜夜澡人妻无码| 超碰日韩人妻| 偷拍99| 久久9亚洲| 国产强奸超碰AV| 亚州综合网| 精品一区二区三区蜜桃臀www| 丁香六月婷婷久久综合| 人人干黄色| 亚洲少妇视频| 91蜜臀在线久久久久| 欧美操逼熟女| 97免费在线观看| 91精产一区二区三区| 嗯啊不要啊在线 | 成年人黄色| 四虎精品一区| 中文字幕大片三级狠狠干| 中国一级特黄大片护士| 91欧美网| 蜜乳av一区二区三区| 打av高清| 操99| 看黄片视频免费| 秋霞怕怕片| 国产丸一视频| 情色五月天久久久| 丁香五月激情婷婷| 密乳无码| 国产女人视频三四五区| 伊人午夜福利视频| 久久久9视频| 婷婷丁香五月激情啪啪| 一级片视频啪啪| av橘色网站| 日韩八十路老熟女| 亚洲91av| 91操人视频| 国产精品永久免费10000| 欧美 亚洲 第一页| 超碰97人妻自拍| 呻吟 欧美 日本 中出| 国产AV天美| 天天91~综合入口| 国产免费久久久久| 亚洲国产一级精品毛一级精品看免费视频 | 五十路三区在线| 97久操| 中文字幕十五区| 啊啊啊用力在线观看| 九九成人视频| 九九aV| 久久毛卡| 园内精品自拍视频在线播放| 老司机深夜18禁污污网站| 成人a级高清视频在线观看| 亚洲在线a| 大香蕉中文在线| 校园春色AV天堂| 91丰满| 亚洲97精品| 久久久久亚洲| 欧美组图日韩亚洲中文字幕| 少妇熟女视频一区二区三区| 97久久天天综合色天天综合色电影 | 免费观看国产不卡av| 少妇综合网| 亚洲中文字幕熟女| 国产家庭乱伦表演| 国产男女边吃边摸视频网站| 人人操 欧美| 自拍偷拍亚洲熟女妇人精品| 18啪啪手机免费性爱| 2018天天干在线视频| 芊芊操逼视频无码| 日本性爱不卡视频| 操逼不卡中文字幕| 亚洲精品无码少妇久久| 99操碰| 91色艳| 中文字日本乱码| 精品人妻一区春色| 91热色| 蜜臀久久99精品久久久久| 老司机香蕉久久久久| 久久97超碰| 亚洲精品白浆高清久久久久久| 91av一区二区在线观看| 亚洲精品无码久久AV| 国产精品永久免费10000| 眼镜人妻101.com| 日本www操操操| 91无码中出人妻视频| 91九久| 中文字幕女同在线| 青青草原av| 极品白嫩美少妇在地板上位骑射淫水泛滥| 超碰欧美| 大香蕉乱级| 日韩久久激情精品| 人妻啊啊人妻啊啊| 蜜臀久久99精品久久综合| 丁香五月激情综合| 久久精品老司| 久热这里| 五月丁香黄色网| 久久久久国产精品片区无码直播 | 天天看夜夜看日日干| 激情网色| 超碰成人免费| 亚洲码和欧洲精品激情系列| 91色伦综合| 九热久| www.99中文字幕| 亚洲,欧美,春色,另类| 欧美少妇性乱| 欧美日韩在线小说 | 精品久久久九九九孕妇| 色男人色天堂东京热| 天天爽天天操啊啊啊| 国内偷自视频区视频综合| 青娱乐久久艹| 91在线限制级| 日韩精品资源| 欧美性爱第一区| 熟女突然公开看18禁影片| 神马午夜久久久| 97亚洲中文| 国产精品自拍xxxx| 97 亚洲 日韩 欧美 在线| 天欧美在线| 青青草一区二区高清无码视频| 国产91av在线播放| 久久一二三四五六七八九区区区 | 欧洲精品一二三在线| 日韩97P| 中文自拍欧美影视| 秋霞午夜视频一区二区| 四虎免费在线播放| 亚洲 自拍偷拍 欧美| 亚洲熟女乱色| 97在线免费看视频| 亚洲欧美精品福利在线| 久久不卡一区二区| 超碰99在线| 中文字幕精品资源在线| 蜜屁Av| 富女玩鸭子一级毛片| 91色情黑丝搞鸡在线观看一区二区三区三州 | 九九这里只有精品| 激情网色| 日韩电影天堂视频一区二区| 九热久| 91狠狠综合久久| 亚洲日韩资源| 1769国内精品视频| 国产夜夜艹| 神马久久久久久久| 999久久久精品国产| 999国产精品999久久久久久| 欧美人人AAA| 操死我了嗯嗯嗯| 99re热有精品视频国产| 日韩乱码av| 国产成人久久精品蜜臀| 大香蕉乱伦视频网| 美女天天干| 欧美日韩在线国产在线| 狠色婷婷久久一区二区三区_| 日日操免费视频| 国产丰满熟夫69mpp| 蜜臀久久99精品久久久久久无删减 | 97在线免费视频观看| 色婷婷99| 一区二区视频在看| 农村妇女一级二级三级视频| 亚洲色图A| 国产CHASE男男GAYGA 毛多色婷婷| 九九九九九用不成了| 欧美,日韩综合久久| 蜜乳av一区二区三区四区不卡| 乱伦1色页| 国产AV天美传媒一区二区三区 | 中文字幕第二页| 99精品无码| 国产精品第一区第一页| 国产噜噜噜噜噜久久久久久久久| 国产一区二区av综合| 欧美欧美少妇| 2025亚洲男人天堂| 日本欧美一区二区三区免费| 91白嫩| 色婷婷蜜臀av| 亚洲高清无码AAA久久久精品| 亚洲人妻爽爽爽| 国产原创精品| 午夜乱轮操逼视频免费看| 国产精品第一页国产大屁股视频免费区i| 激情接吻视频久久久久久| 91九九九吃| 婷婷久久综合久| 欧美国产精品久久九九| 超碰在线97国产| 凹凸久久人人| 99操逼| 欧美激情 日韩精品| 制度丝袜99| 国产自啪精品视频网站黑丝| 这里只有精品久久| 国语av最新自产拍在线观看| 色呦呦、国产精品| 成人三级片无码| 97超碰人人模人人拍人人| 久久精品高清无码一区| 久久超碰久| 九九探花视频在线观看| 亚洲阿v天堂在线| 黄页网站成人免费| 岛国人妻少妇av在线观看| 久热伊人| 99久久婷婷丁香| 日本中文熟女视频| 欧美欧美少妇| 中出后入| 精品人妻一区二区免费蜜桃| 色婷婷色99国产综合精品| 草草影院最新网址| 天天操夜夜操| 久久久久女教师免费一区| 99黄页网站| 久久9精品视频| 95人妻爽爽人人做人人澡| 日本一区二区三区四区免费观看| 国产成人欧美精品在线| 青青久日| 2019亚洲男人天堂| 91撸色网 玖玖网 欧美| 最新欧美色网| 色五月激情综合网| 亚洲欧洲精品视频发布| 午夜福利一区二区影院| 丁香九月婷婷| 久久精品国产亚洲粉嫩| 天天综合网亚洲综合网| 九九九精品一区二区无码| 欧美性暴力猛交XXXX | 永久免费发布性爱网| 成人无遮挡毛片免费看| 老熟女91| 91日韩| 综合97| 国产91 丝袜在线播放00-百度| 秘书高跟黑色丝袜国产91在线| 激情婷婷丁香| 亚洲999综合| 欧美性天天影院| 98超碰日本| 日本顶级天天操狠狠操夜夜操中文字幕| 色诱avtt| 大香网伊人久久综合网eew| 嗯~啊~快点 死我视频| 狼人综合婷婷激情四射| 国产精品情侣啪啪| 成人影 天天操 亚洲| 综合网,亚洲,欧美| 不卡超碰护士AV在线免费播放| 国产女人高潮视频| 久久久999日本大片| 亚洲图片 91| 天天干一区二区| 日本熟人妻中文字幕在线|...久久国产精品-国产精品_日本一区二区三区中文字幕 | 熟女熟妇一区二区三四区| 亚洲清纯综合| 国产农村妇女毛片精品久久| 国产区在线| 热99re69精品8在线播放| 欧美色亚洲| 秋霞一级鲁丝片A片| 一本色道久久天天射天天干| 精品人妻1区| 欧美亚洲尤物久久| 日亚韩精品视频二区三| 日韩成人综合网| 五月色综合| 色女综合| 强奸熟女一区二区三区| 97jingpin| 老女人综合| 精品久久久久久AV无码| 韩日性爱av| 日韩av乱伦| 久久婷婷国产一区二区色| 成人精品视频一区二区| 欧美大片一区二区三区| 久久9精品网站| www.男人的天堂| 亚洲无无码αⅴ每日更新| 亚洲av综合色区无码一| 国产99 中文字幕日韩小视频| 亚洲天堂中文字幕无码男同| 久久久久久91香蕉国产| 蜜桃狠狠色伊人亚洲综合 | 神马福利久草| 国产精品视频麻豆入口| 18禁超污无遮挡无码免费网| 欧美婷婷| 国产超碰在线一区| 欧美丝袜美女电影一二三四区| 欧美色图欧美| 国产精品国产亚洲区艳妇糸列| 人人看欧美性爱| 99色综合| 91性感网站| 亚洲97超碰| 欧美一级久久久久久久大片动画| 婷婷色播婷婷| 青青草精玖玖69精品|