国产成人欧美一区二区三区vr_久久国产精品人人爽人人爽_国产精品永久免费播放_肉欲啪啪a∨无码精品一区二区_国产超短裙jk丝袜在线_亚洲AV片高清资源在线观看_国模无码一区二区三区久久_国产成年人未进视频_中文字幕无码精品夜_一区二区三区在线视频免费看_亚洲成AV人片在线观看网址_日本激情视频高清综合久久_亚洲午夜视频福利_国内大量揄拍人妻精品視_久久国产精品福利二区三区

ARTICLE DETAIL

資訊詳情

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

acrilog入門:用Python JSON日志告別排查噩夢

acrilog入門:用Python JSON日志告別排查噩夢 說實(shí)話剛接觸 Python 日志這塊時(shí)我一度覺得 acrilog 這名字挺冷門但它解決的是線上服務(wù)最讓人頭疼的問題之一日志不好查。先說結(jié)論如果你的 Python 服務(wù)部署到服務(wù)器以后還在用默認(rèn)的 logging 輸出“時(shí)間-級(jí)別-消息”這樣的明文日志那在故障排查、日志采集、告警分析的時(shí)候大概率會(huì)被折騰到懷疑人生。尤其當(dāng)請求量大起來以后日志里每一行都有換行、縮進(jìn)、堆棧信息想從里面按字段篩選簡直是災(zāi)難。acrilog 就是一個(gè)把 Python 標(biāo)準(zhǔn) logging 輸出改造成單行 JSON 的小封裝輕量、無侵入幾行代碼就能讓日志從“給人看”變成“既給人看也順便給機(jī)器看”。這篇文章我會(huì)圍繞標(biāo)題里的三個(gè)關(guān)鍵詞展開acrilog 的語法調(diào)用方式、init() 的核心參數(shù)拆解以及幾個(gè)我在真實(shí)項(xiàng)目里用到的實(shí)際應(yīng)用案例。還會(huì)附上自己踩過的坑和排查思路按我們寫代碼的慣例先給結(jié)論再給過程能幫你少走彎路。1. 初識(shí) acrilog整體設(shè)計(jì)與核心思路1.1 acrilog 到底做了什么acrilog 的本質(zhì)不是一個(gè)全新的日志框架而是對 Python 標(biāo)準(zhǔn)庫 logging 的一次“格式化升級(jí)”。它主要做的事情可以拆成三塊接收你的配置參數(shù)比如服務(wù)名、日志文件名、日志級(jí)別、是否同時(shí)輸出到控制臺(tái)在 logging 體系里注冊一套 JSON Formatter把原本一行純文本的日志記錄轉(zhuǎn)成一個(gè) Python dict再通過 json.dumps 變成一行 JSON 字符串寫入目標(biāo)位置可以是文件也可以是控制臺(tái)或者兩者同時(shí)你可以把它理解為“給 logging 換了一身輸出皮膚的皮膚包”。Python 的 logging 本身是分層架構(gòu)Logger、Handler、Formatter 各司其職acrilog 做的事情就是幫你把 Handler 和 Formatter 裝好讓你不用手動(dòng)去組裝那一堆配置代碼。為什么說它無侵入因?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 日志如此重要很多人覺得日志只要能打出來就行文本格式也挺清晰的。我舉個(gè)實(shí)際例子你有一條訪問日志明文可能是這樣2024-11-11 10:00:00,123 - INFO - api access - user_id1024 cost230ms看起來還算整潔對吧但當(dāng)你想統(tǒng)計(jì)今天的平均耗時(shí)、按 user_id 篩選某個(gè)用戶的全部請求、或者把日志導(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)庫輸出快速改造成結(jié)構(gòu)化格式的最省事方案。1.3 為什么選 acrilog 而不是自己封裝有人可能會(huì)說JSON 日志我自己寫個(gè) Formatter 也不難何必用第三方包確實(shí)一個(gè)自定義 JSON Formatter 大概幾十行就能寫完。但自己封裝容易忽略幾個(gè)細(xì)節(jié)異常堆棧的格式化、時(shí)間戳?xí)r區(qū)處理、中文編碼問題、多 handler 的重復(fù)輸出問題、日志文件輪轉(zhuǎn)和目錄創(chuàng)建等。acrilog 把這些邊界情況提前處理好了。更關(guān)鍵的是acrilog 走的是正統(tǒng) logging 體系不是造輪子。它的配置入口只有一個(gè)函數(shù)使用成本低出問題的時(shí)候你可以隨時(shí)翻源碼或者退回標(biāo)準(zhǔn)庫方案。對中小型項(xiàng)目來說這是性價(jià)比最高的選擇。2. 安裝與基礎(chǔ)用法先把最小配置跑起來2.1 安裝環(huán)境準(zhǔn)備acrilog 是純 Python 包安裝方式和其他包沒什么兩樣pip install acrilog建議在虛擬環(huán)境里安裝避免污染系統(tǒng) Python。我實(shí)測常見的 Python 3.8、3.9、3.10 環(huán)境都沒問題Python 3.7 及以下版本我沒有驗(yàn)證過如果你用的是老版本建議先升級(jí)解釋器版本。裝完以后驗(yàn)證一下是否成功python -c import acrilog; print(acrilog.__version__)如果能正常輸出版本號(hào)說明安裝沒問題。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然后測試輸出一條消息。打開日志文件看到的應(yīng)該是一行 JSON 格式的日志。這個(gè)文件里包含的時(shí)間、logger 名、級(jí)別、消息、代碼調(diào)用位置等字段就是日志系統(tǒng)最喜歡的東西。這里要提醒的一點(diǎn)是如果你傳的 file_name 帶子目錄先確認(rèn)目錄已經(jīng)存在。我遇到過某些版本不會(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)算過一筆賬假設(shè)每個(gè)請求產(chǎn)生兩條日志一條訪問日志大約 300 字節(jié)單機(jī) QPS 100一天下來日志量是 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 語法與參數(shù)深度解析3.1 先理解 acrilog 的“語法”模式acrilog 不是一門新語言它沒有自定義的 DSL。很多人第一次接觸時(shí)以為要學(xué)一套新語法其實(shí)不需要。acrilog 對外暴露的用法就是“引入 init() 配置 標(biāo)準(zhǔn) logging 調(diào)用”三段式。說它是語法不如說是一套“配置規(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ī)則非常簡單沒有語法糖賣弄學(xué)習(xí)成本幾乎為零。但它有一個(gè)隱含的約定init() 必須在你的業(yè)務(wù)代碼第一次寫日志之前完成否則部分日志可能會(huì)在 acrilog 接管之前就已經(jīng)按默認(rèn)格式輸出了。3.2 init() 核心參數(shù)逐個(gè)拆解init() 是 acrilog 最重要的接口大部分問題都出在參數(shù)理解上。我把常用參數(shù)整理成一張表結(jié)合我的使用經(jīng)驗(yàn)逐個(gè)說明參數(shù)名類型默認(rèn)值作用說明app_namestr無服務(wù)名寫入 JSON 里的 app 字段用于區(qū)分日志來源module_namestr無模塊名可疊加到日志字段中方便識(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無時(shí)間格式化字符串可按需自定義json_kwargsdict無傳給 json.dumps 的額外參數(shù)例如 ensure_ascii、indentstacklevelint1記錄日志調(diào)用位置時(shí)向上追溯的棧層數(shù)裝飾器場景會(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)庫的格式。在一些還沒有日志采集系統(tǒng)的項(xiàng)目里這個(gè)模式可以作為過渡方案。json_kwargs是一個(gè)容易被忽略但非常重要的參數(shù)。比如日志里有中文json.dumps 默認(rèn)會(huì)做 ASCII 轉(zhuǎn)義輸出變成\u4e2d\u6587人眼完全沒法看。解決辦法是傳acrilog.init( ..., json_kwargs{ensure_ascii: False} )這樣中文就能正常顯示。如果你對接的是日志系統(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í)際場景。我總結(jié)了幾組常用組合本地開發(fā)streamTruelevelDEBUGjson_kwargs 加 indent方便觀察測試環(huán)境streamFalselevelINFOfile_name 指向獨(dú)立的 test 日志目錄生產(chǎn)環(huán)境streamFalselevelINFOfile_name 按天命名配合日志輪轉(zhuǎn)有些項(xiàng)目需要?jiǎng)討B(tài)調(diào)整日志級(jí)別比如線上出問題時(shí)想臨時(shí)把某個(gè)模塊切到 DEBUG。acrilog 自身不提供運(yùn)行時(shí)改級(jí)別的接口但你可以直接操作標(biāo)準(zhǔn)庫import logging logging.getLogger(app.order).setLevel(DEBUG)因?yàn)?acrilog 并沒有脫離 logging 體系所以標(biāo)準(zhǔn)庫的很多玩法它都天然支持。這個(gè)點(diǎn)很多人不知道遇到“項(xiàng)目里能否運(yùn)行時(shí)調(diào)日志級(jí)別”的問題時(shí)直接用標(biāo)準(zhǔn)庫方法就行。還有一個(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 不萬能遇到定制化需求時(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 字段是怎么組裝起來的這樣加自定義字段、改字段名、過濾字段都游刃有余。它不復(fù)雜就是遍歷 LogRecord 的屬性再 json.dumps 一下。4. acrilog 實(shí)際應(yīng)用案例4.1 案例一FastAPI 接口服務(wù)接入FastAPI 是目前很火的 Web 框架我把 acrilog 接入過多個(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ù)的問題。我在實(shí)際測試中發(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)建。方案是這樣的先通過 acrilog 初始化默認(rèn)配置然后對需要單獨(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 案例三對接 ELK 或 Loki 日志采集服務(wù)跑起來以后日志最終要送到日志平臺(tái)。最常見的是用 Filebeat 采集日志文件然后送到 Elasticsearch。acrilog 在這里的價(jià)值非常明顯因?yàn)檩敵鍪菃涡?JSONFilebeat 不需要任何解析規(guī)則直接按 JSON 采集就行。一個(gè)最小可用的 filebeat.yml 配置片段長這樣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 這些字段做過濾。如果用的是 Loki Promtail配置也類似Promtail 對于 JSON 日志可以通過 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 案例四把第三方組件的訪問日志也統(tǒng)一成 JSON我在實(shí)際項(xiàng)目里遇到一個(gè)很煩的情況業(yè)務(wù)日志通過 acrilog 全部 JSON 化了但 FastAPI 底層用的 uvicorn 訪問日志還是老樣子。日志平臺(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于是所有訪問日志都被改造成 JSON 格式。實(shí)測下來效果很好日志平臺(tái)里格式完全統(tǒng)一了。這里有一個(gè)注意點(diǎn)清 handler 的操作必須在 uvicorn 開始打印訪問日志之前完成所以最好放在入口模塊的最前面。另外如果你關(guān)閉了 uvicorn 的 access log上面的操作對訪問日志無效因?yàn)楦緵]有日志產(chǎn)生。5. 常見問題與排查技巧實(shí)錄5.1 六個(gè)高頻問題速查現(xiàn)象可能原因解決辦法日志文件沒生成file_name 目錄不存在或權(quán)限不足先創(chuàng)建目錄確認(rèn)進(jìn)程對目錄有寫權(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第三方庫日志還是明文第三方用了自己的 logger 或 handler清除對應(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 上再注冊一個(gè) handler輕則導(dǎo)致日志重復(fù)輸出重則把 acrilog 配置的 JSON Formatter 覆蓋掉。排查時(shí)如果發(fā)現(xiàn) JSON 格式突然失效優(yōu)先懷疑是不是有人調(diào)了 basicConfig。還有一個(gè)關(guān)于 streamTrue 的體驗(yàn)問題。開發(fā)時(shí)開著 stream 確實(shí)爽但控制臺(tái)輸出的 JSON 字符串通常很長日志一多眼都花了。我的習(xí)慣是本地調(diào)試時(shí)把 json_kwargs 里加 indent2線上再改回單行。雖然多寫幾行配置但調(diào)試體驗(yàn)提升明顯。5.2 排查思路與避坑筆記如果你已經(jīng)接入 acrilog卻發(fā)現(xiàn)日志行為不符合預(yù)期我的排查順序通常是這樣第一步用最精簡的腳本復(fù)現(xiàn)。單獨(dú)寫一個(gè) py 文件只做 init 和一條 INFO 輸出看結(jié)果對不對。如果最小復(fù)現(xiàn)正常說明問題出在業(yè)務(wù)代碼里比如 init 被多次調(diào)用、某個(gè) logger 被單獨(dú)設(shè)置了 handler。如果最小復(fù)現(xià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 格式只對部分模塊生效”的問題都出在這里。第三步看 JSON 里的時(shí)間字段。默認(rèn)輸出的時(shí)間有時(shí)帶微秒和時(shí)區(qū)信息這對接入 Elasticsearch 很友好但如果你的日志系統(tǒng)對時(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)換。再說一個(gè)容易被忽略的生產(chǎn)問題日志文件切割。acrilog 本身不做按大小或按天的自動(dòng)輪轉(zhuǎn)生產(chǎn)環(huán)境日志量一大日志文件會(huì)變成一個(gè)幾十 GB 的巨型文件到時(shí)候別說采集了連打開文件排查都卡。我的做法是把 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í)間范圍過濾cat logs/app.log | jq -c select(.time 2024-11-11T00:00:00) | {time, level, msg}這一套操作在線上應(yīng)急排查時(shí)非常高效。以前我遇到問題都是 grep 一串字符串再對著多行明文日志猜結(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)檢索問題時(shí)不再依賴正則和字符串匹配直接按字段拖拽組合查詢排查效率提升了一個(gè)量級(jí)。如果你只是一個(gè)小腳本、一個(gè)一次性的任務(wù)用不用 acrilog 都無所謂但只要你做的是長期運(yùn)行的服務(wù)或者已經(jīng)接入了日志采集平臺(tái)我非常建議花十分鐘把日志切換到 JSON 格式。acrilog 是一個(gè)不錯(cuò)的起點(diǎn)它的學(xué)習(xí)成本幾乎為零退出成本也低——就算將來不滿足需求你也能輕松回到標(biāo)準(zhǔn) logging 生態(tài)里做自定義改造。最后再分享一個(gè)小技巧接入 acrilog 之后可以在項(xiàng)目的初始化腳本里加一句自檢日志輸出 acrilog 的版本號(hào)和當(dāng)前配置。這樣你排查問題的時(shí)候第一眼就能判斷線上跑的是哪個(gè)版本的包、配置是否生效避免在版本不一致上花時(shí)間。項(xiàng)目越來越大以后這個(gè)習(xí)慣能幫你省掉很多無謂的猜測。
返回列表
PREV
查看更多資訊
NEXT
返回資訊列表
经典丝袜一区| 天天射天天操天天干天天吃2018 | 玖玖大干人妻| 国产精品99精品视频网站| 青草视频在线看看看看看看看看看| 黄日韩| 亚洲超碰97| 91九色在线| 中文字幕诱惑制服人妻丝袜美丝袜美 | 国产精品女aA片爽爽视频| 一区二区三区激情在线观看| 草久久久| 玖玖爱免费观看视频| 精品夜夜澡人妻无码| 丝袜美腿91| 九色精品视频导航1| 亚洲淫乱骚妇AV| 理论久久婷婷网8| 强奸xx国产| 大香蕉手机在线| 午夜福利激情在线视频| 婷婷激情五月综合| 久久精品国产免费观看99| 久草综合视频| 国产成人无码高清| 情色五月天就去干| 久久人人看| 91精品免费| 色视频蜜乳| 天天干美少妇一区| 丝袜综合色图| 日韩三级在线观看mp4| 91老熟女逼| 久久久96| 亚洲四虎熟女精品| 国产蜜臀精品一区二区尤物| 超碰国产精品久| 青娱乐 成人娱乐在线| 男人天堂毛片| 亚州男人天堂| 日本福利二区视频| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 免费中文在线| 好涩综合| 欧美色三级片91| 日韩三级伊人| 嫩草 人人网精品| 国产69精品久久久久99尤物| 91熟女视频网| 熟女丝袜视频| 久久一级无码精品毛片6| 校园春色 亚洲| 亚洲高清无码在线桃色| 亚洲日韩狠狠撸视频| 熟女一区二区三区| 夜夜影视四色| 躁躁躁日日躁2020| 欧洲小说色图视频另类| 囯产操逼片| 日本媚薬中文字幕在线| 爱欲AV| 成人亚欧免费视频| 天天92av| 91少妇香蕉久久精品| 欧美一二三级精品在线| 91大香蕉伊人| 欧美亚洲第1页| 亚洲人天堂| 蜜臀久久久| 约操熟妇| 超碰97极品9| 综合一区中亚洲国产成人综合精品| 丰满人妻-区二区三区免费看| 射欧美综合| 国产精品岛国片在线观看| 三四中文字幕| 蜜桃色院一区久久 | 国产无码高清操逼视频| 亚洲综合色图欧美| 久久精品视频在线观看| 婷婷五月天影院| 影音先锋少妇| 日夜精品| 欧美日韩制服| 精品人妻1237| 天天天天干| 精品无码久久久久久久杏吧| 亚洲天堂第一页| 97综合在线| 狠狠操狠狠操操| 亚欧操逼片在线观看 | 欧美自拍偷拍综合图片| 老司机免费视频在线91| 一区二区精品更新提醒| 99热免费| 成人性爱电影一区二区| 国产亚洲日本| 另类天堂| 五月婷婷五月天| 丁香六月啪啪| 99热| 国模一区二区三区| 九色婷婷| 国产91啪| 日韩精品视频在线观看一卡二卡| 99热只有这里有精品| 人人操人人摸人人看人人干| 亚洲av综合色区无码一| www.久久爱| 人人操人人叉人人插人人| 国产三级中文有码在线视频| 97天堂| 中文无码一二三区| 欧美少妇性乱| 五月天欧美色图| 亚洲在线观看| 操b在线观看| 香蕉欧美| 国产精品永久免费10000| 久久日韩肥臀| 久久精品中文字幕观看| 人妻嗯啊啊在线播放| 91在线|亚| 久久精品国产99国产精品亚洲| 亚洲永久永久永久永久一级一级一级精品| 一区二区三区 丝袜高跟| 国产久久一区二区| 亚洲日韩精品在线播放| 按摩中文字幕| 青青操视频在线| 情色大香蕉| 91无遮挡| WWW黄片COM| 野狼激情网| 久久久久亚洲精品| 麻豆天美91| 综合操逼| 欧美成人精品A片免费一区99| 91n美女视频| 青青欧美| 欧美色图电影| 欧美精品999| 亚州色阁| 免费看A片毛毛片在线播| 99热亚洲天堂| 伦理第一页| av日韩在线观看电影| 俺去久久| 91高潮| 中文自拍欧美影视| 色婷婷综合久久久久中文一区二区 | 99re9这里只有精品| 91丝袜人妻| 国模艳艳啪啪一区| 日韩欧美蜜桃精品久久中文字幕久久 | 国产一区二区在线播放量| 丁香五月婷婷五月| 91亚洲网站| 中文字幕123| 蜜桃臀一区二区三区久久| 友优传媒精品在线一区二区| 国产激情片在线观看| 亚洲欧美日韩国产丝袜自拍中文| 大色综合| 久操影视| 91黑丝露脚| 欧美日韩久久精品爱爱| 五月天色综合| 亚洲精品久久久久毛片A片拉屎 | 国产高清午夜成人在线观看| 禁十八久久| 国产精品无码久久久久2028| 亚洲色婷婷综合久久一区二区三区| 女人高潮大叫一级毛片| 情色大香蕉| 岛国片在线观看视频亚洲| 国产后入式在线观看| 人人摸人人摸人人干| 精品亚洲俞拍视频一区| 交换娇妻呻吟声不停中文字幕| 日韩精品三级片长长久久| 狠狠色噜噜狠狠狠狠狠色综合久久| 在线五区| 国产精品午夜成人福利| 人人爱人人乐人人操| 亚洲av热热色| 天天做天天爱天天爽| 成人a v在线播放免费| 中文字幕十五区| 久久人妻精品| 久久欧美性爱视频| 另类小说综合网| 999综合网| 一区e区三| 日韩人妻少妇 一区二区三区| 亚洲日韩电影| 国产精品午夜AV完会免费 | 精品偷拍13p欧美dodk视频| 一本一道久久综合久久| 麻豆 亚洲 97| 午夜欧美J进J出白浆流出久久久 | 亚洲av无线观看| 后入式免费视频| 大香蕉一人| 蜜桃传媒一区二区亚洲| 制服乱伦| 久久东京国产精品视频| 婷婷91| 3028国产精品| 日韩国产乱子伦App| 日本韩高清无砖码22o| 欧美性色欧美| 丝袜美腿操av| 日韩欧美偷拍美女视频| 91偷拍欧美亚洲| 天堂蜜桃无码视频一区二区| 五月婷婷大香蕉| 不卡av在线中文字幕| 资源新线在线天堂| 欧美激情久操网| 男人天堂网站| 九久久精品| 日韩少妇无吗| 中文字幕狠狠玩| 国产黄色av大片网站| 亚洲乱伦图片视频| 欧洲熟妇xxXx欧美老妇裸体| 久碰视频| www.夜夜| 粘花网06av视频| 色情亚洲日本成人| 国产蜜臀在线| 精品日韩产品在线,日韩在线不卡视频,欧美日韩免费专区/久, | 精品妇女一区二区三区| 色婷婷视频| 97视频在线观看播放与子乱对白在线……| 91人妻Pr| 九九久久首页| 老熟女综合网| 99国产精品| 亚洲春色欧美激情自拍| 午夜福利视频在线一区| 91丝袜美女| 高清不卡视频| 国产久久久久影院老熟女| 久热99999| 丰满熟女一区二区三区在线播放| 国产一区二区a毛片| 天天综合网国产| 78久久久| 青青草影视蜜久久| 蜜乳AV免费观看| 激情五月天色色网| 91电影色诱| 熟妇激情| 日韩激情电影中文字幕| 人妻精品一区二区在线| 欧美无圣光在线| 色老大| 999精品国产高清一区二区| 天天干天天拍| 亚洲18禁| 欧美操逼录像国产黄色国产| 欧美性爱中文字幕无线码| 国产黄a三级三级三级av在线看| 学生妹天天看| 亚洲免费成人在线高清无码视频| 精品久久久久,69国产成人精| 国产精品动态一区二区三区四四| av在线免费一区二区| 亚洲国产精品久久久久久久久久| 日韩不卡网操逼中文字幕日韩| 校园春色美腿丝袜 | 肉嘟嘟www视频在线观看高清| 无码视频一区二区| 熟女乱3伦999| 国产精品一区二区在钱播放| 欧美久久久| 天天干天天舔| 综合激情五月丁香| 好爽视频在线观看视频 | 青青操少妇| 亚洲 小说 欧美 激情 另类| 色九九九九| 黄色片A级一区二区三区| 九月丁香婷婷| 国产午夜在线观看视频| 日韩欧美中文字亚洲慕| 一类无码操逼视频| 伊人久久大香蕉线AV五月天| 一区二区三区国产在线播放| 日韩一级二级| 日本国产欧美一区三区二区| 欧美日产国产在线成人第一区| 亚洲不卡AV在线| 青青草在线视频播放器| 亚洲瓯美色图| 欧美日韩国产在线| 国产兽交视频在线播放| 视频在线97| 免费看一级a性色生活片久久无| 大粗鳼巴久久久久| 很很很很操| 久久老子无码午夜伦不卡| 伊人性在线视频| 欧美后进式| 色色毛片| 九九无码久久精品视频| 被男人吃奶很爽的毛片| 国产美女自拍视频| 青青草自拍视频在线播放| 91久久久亚洲| 亚洲色图 图片| 国产AV天美| 亚洲AV成人在线| 99re公开精品免费视频| 99∨VTV| 最新av中文字幕高清| 欧美激情 亚洲色图| 97天天弄| 偷拍网站久久男女男| 日韩视频中文字幕| 蜜桃臀一区二区aV| 色香伊人| 一区二区三区成人| 欧美传媒一区| 国产情色第一第二页在线观看| 欧美一区二区日韩传媒搭讪精品| 亚洲熟女中文字幕在线| JULIA一区二区三区在线播放| 国产av激情无码久久天堂| 大香蕉久久| 九九九久| 伊人国产视频| 色拍偷亚洲| 91精品又粗又猛又爽| 在线色导航| 久久久涩| 天天影视之亚洲综合网| 大香蕉碰碰| 大香蕉亚洲中文| 伊人网综合在线视频| 亚洲熟女一区二区| 青青草原av| 91精品国产91久久福利| 情侣开房子拍 日韩无码 女的很漂亮| 久9九综合在线| 午夜男女爽爽爽在线视频| 欧美色蜜桃97| 亚洲情色1区| 亚洲 自拍偷拍 欧美| 99久久精品无码一区二区毛片免费| 97日视频| 欧美日韩m| 亚洲婷婷综合网| 91色女| 综合影视国产无码| 欧美日韩中国x| 欧美激情超碰777| 日韩在线国产字幕| 后入福利视频| 亚洲凸凹超碰成人| 99热| 91激情网| 国产男女无套视频免费观看| 免费的很黄很污的全部视频| 欧美中文字幕精品人妻| 色九久| 色网1| 日韩78m视频| 抽插无码高清一区| 五月丁香拍拍激情综合三级| 手机看片日韩人妻| 欧美色另类| 猛猛干| 日日AAvv| 亚洲成人AB| 欧美亚男人的天堂| 久久久久13| 99这里有精品| 正在播放:深夜激情大战,自带黑丝袜全力输出骚穴 | 久久系列| 一区在线精品中文字幕| 亚洲人天堂| 免费一级欧美片片线观看| 91bbbbbb| 少妇无码999| 97久久久久| 性色中出| 后入 亚洲 美女 射| 91人妻人人妻| 欧美青青视频| 2020中文字幕在线| 狠狠操使劲操| 日本精品不卡一二三区| 亚洲日韩青青草色月| 黄骗免费网站| 秋霞成人一级在线观看| 国产精品第二页| 日韩欧美成人性爱在线| 男人的天堂无码| 好爽免费视频| 97操97色| 老鸭窝亚洲毛片| 久久超碰、| 国产97综合| 国产极品粉嫩馒头一线天av| 人人摸人人干人人拍97| 激情99| 国产自产91区13区| 久久蜜色情在线视频xxx免费观看| 久久久久无码一妻区| 天天性射网| 人妻精品一区二区三区| 欧美日本中字另类在线| 久久久工口| 青青草色插素人| 国产传媒日韩| 丁香久久| 久久av色| 亚洲精品99999| 不卡啪啪视频| 亚洲天堂一区二区| 爱逼综合| 久久久久9久久久久| 久久精品国产亚洲av水密被窝| 亚洲五码一区二区三区| 嗯嗯啊啊好疼| 精品久久久久久中文| 久久久久久久97| 99视频在线| 欧美黑人极品高潮喷吹熟女黑人性暴力日韩在线欧美极品一区 | 久久人人爽爽人人爽人人片αV| 人人色97| 欧美Ⅴ性爱| 91色黑人少妇| 久久亚洲AV成人精品无码| 亚洲少妇色图自慰直播| 国产精品久久久久久久毛片1| 超碰69| 91人妻Pr| 久久专区| 曰本熟女视频| 久草福利在线资源站| 久久久久99精品成人片蜜臀| 精品久久久久,69国产成人精| 国产60页| 激情婷婷丁香| 欧美日韩国产中文超碰| 国产精品视频一区二区三区八戒| 亚洲在线网站| 精品一国2| 五月天婷婷久久| 日本成熟少妇A∨网站| www鬼畜国产男人的天堂| 91人妻最真实刺激绿帽| 欧美色图校园春色| 是还免费视频1727我| 婷婷日韩一区二区三区中文字幕在线| 亚洲无线码欧洲精品区别| 久久久无码精品人妻二区| 五月丁香激情综合网| 亚洲熟伦熟妇AV无码春色| 麻豆天美在线喷水AV| 久久久精品成人国产| 免费观看性欧美一级| 久久成人东京热人妻| 国产精品久久久777| 亚洲 日韩 欧美 国产综合体| 中国少妇XXXX做受| 国内毛片欧美香蕉精品| 久久久新亚洲AV| 色约约一区=区三区| h色99999| 99久久无色码| 青青草原香蕉日本Ap| 亚洲精品国产AV天美传媒| 亚洲有码 视频一区| 精品久久人妻成人网| 国产麻豆福利av在线播放| 国内一级精品| 大但人体久久久久| 欧美黄色图片| 美女AV一区二区| 久插综合| 色香伊人| av橘色网站| 欧美亚洲首页| 久肏视频字幕| 久草午夜| 欧美激情视频在线一区| 中文字幕精品日韩中文字幕| 日本精品无码三级网站| 欧亚性爱啪啪| 丁香六月啪啪| 曰本熟女视频| 无码九九| 立川理惠被中出无码| 快灬快灬 一下爽蜜桃在线观看| 高清国产av无码| 亚洲欧美国产成人综合不卡| 亚洲一区二区麻豆影院| 日本日逼视频网| 四虎影库国产精品免费| 福利在线黄片| 青青11操操操操操操操操| 大香蕉在线免| 亚洲天天自拍| 黄色av网站在线播放| www欧美性爱| 五月天啪啪| 麻豆亚洲Av成人无码一区精品| 99热国产| 亚洲图片激情综合另类| 国产一区二区欧美日本| 精品人妻中文字幕4399| 日韩91网站| 国产人妻精品久久久一区二区三区 | 久热热| 92福利社视频| 麻豆a'v电影| 激情五月婷婷| 男人天堂最新手机版在线青青草| 宅男91视频在线播放| 13小男生GAY自慰脱裤子| 久久一留热品黄| 大屁股人妻女教师撅着屁股| 美女诱惑在线一区| 婷婷丁香在线| 成人乱人伦一区二区| 超碰在线第一页| 日韩一级性爱无码| 美女诱惑久久| 丁香五月天婷婷姐| 欧美色图小说综合| 精品人体无圣光凹凸| 9超碰免费| 91久久久久久久| 欧美日韩97在线| 熟女少妇视频| 九九性视频| 91高清欧美| 国产精品一区二区三区在线密挑| 精品九九| 一本久久精品中文字| 久久神马| 内射黑丝袜| 操B久久| 国产亚洲精品美女久久久m| 少妇人妻太紧太深av| 欧美黑人精品一区二区| 天天射天天| 色臀AV| 色情五月丁香| 大香久久| 艾草av| 黑人娇小av在线播放| 老司机免费视频在线91| 精品国产91内射久久| 午夜综合在线| av天堂精品久久| 啊啊啊啊啊好大好舒服想要| 永久免费发布性爱网| 国产精品乱码久久久久久久久久久久| 天天cao在线| 亚洲最大网站av| 野狼福利社区| 91美女視頻| 中文字幕91综合| 91综合在线| 欧美老妇综合网| 激情久久久| 中国女人内射6XXXXX| 狠狠爱夜夜| 日本一级不卡一二区| 国产精品对白内射| 嗯嗯啊啊视频在线看| 久草视频分类在线| 蜜桃久久精品一区二区三区| 久操99| 成人午夜视频免费播放| 国产吞精a级片激情电影| 国产操操日韩三级黄| 伊人久久大香线蕉无码| 久99在线免费观看视频| 黄片直播三级黄片两女一男| 五月丁香综合| 日韩亚洲中文字幕在线| 日韩激情啪啪啪| 国产精品乱人伊人网| 久久精品无码专区| 丁香六月激情| 色色青青久久| 色婷婷激一区二区三区| 和协影院中文字幕三区| 少妇一级婬片免费放一级a性色.| 精品一区96| 狠狠入| 夜夜操狠狠操| 久操九九九九九九九九九九九九九九九九九九九九九九九九九九九九 | 一区中文字幕二区日韩| 超碰人人乐97| 人妻久久一区二区三区 | 国产丰满少妇久久久精品影院| 绯色一区二区三区不卡少妇| 久操99| 97超碰精品图片| 日本天天操| 97超碰欧美精品| 久无码| 日韩成人无码| 留下AⅤ黄色片| 欧美中字二区| 岛国视频免费在线观看| 欧美制服网站美腿丝袜| 97在线免费视频观看| 亚洲,欧美,春色,另类| 欧美色涩| 校园春色综合色| 日韩欧美午夜一区二区| 亚洲综合图片在线| 日本3级一区二区免费 | 国产无吗在线播放| 丰满丝袜少妇AV| 国产无马av| 久久久9999| 蜜臀久久在线视频| 久久一区二区三区入口| 麻豆 美女 丝袜 人妻 中文| 99热免费| 欧亚性爱啪啪| 亚洲综合在线第一页| 9999伦理视频| 亚洲中文日韩精品| 久久夜夜| 免费草草草草草视频| 五月天色图影视| 香蕉欧美| 日本最新免费韩国1区2区视频播放| 啪啪啪精品视频| 97视频免费播放| 91欧美美女日韩国产婷婷| 熟女视频久久| 激情小说图片亚洲首页| 青青草在线视频美女| 丁香五月综合| 秋霞久久亚洲精品成人| 青草一区二区| 日韩 欧美 国产 麻豆| 人妻精品视频一区二区| 91 丝袜在线播放| 97超色| 午夜性| AAAA欧美日韩| 久久久一区二区| 欧美亚洲综合色| 99久国产精品午夜性色福利| 午夜福利在线视频1000| 欧美性爱日韩性爱| 精品一久久久| 日本福利社| 欧美色狠| 超碰天天操| 人人干人人操人人..com| 久久久999国产| 99超碰色| 久久国产热视频97电影| 亚洲精品黄码久久久久| 午夜精品99久久久久传媒| 性夜影院爽黄A爽免费动漫| 肥佬影院91| AA特级绝黄| 亚洲婷婷综合网| 视频不卡中文字幕| 久久精品无码不卡| 欧美日韩美女精品久草一区二区三区 | 久久综合女优| 麻豆性爱视频在线播放| 欧美日韩国第一区| 99国产精品人妻人伦| 97色在线| 天天色粽合合合合合合合| 超碰99在线观看| 人人插人人搞人人操| 亚洲色诱惑| 久久一区二区三区入口| 久久黄片国产一区二区| 欧美一二三级精品在线| 国产精品露脸在线观看| 国产精品久久久久中文字幕| 粉嫩av久久一区二区三区| 欧美一级黄片视频在线| 日本操大逼| 黑人操一区二区| 色五月激情综合网| 久久五月份| 久久超碰、| 亚洲大胆人体av| 大香蕉草草| 婷婷婷婷婷婷久久久久| 国产操伦| 久久久婷婷| 国产女上位好爽在线| 日韩美女久久一区二区三区| 日韩精品人妻中文字幕久久久| 日韩电影天堂视频一区二区| 国产三级中文字幕粉嫩 | 欧美日韩第一页| 日本高清一本二本免费不卡| 五月丁香六月婷| 国产亚洲精品一区二区三区| 成年女人一区| 久久九精品| 三级色影综合网| 亚欧免费| 色青青久久影视| 男人的天堂,欧美亚洲另类国产日韩,日本高清一区二区 | 亚洲青青草| 亚洲精品819| 免费av在线播放二区| 欧洲性爱无码区| 无码91| 欧美日韩中文字幕人妻| 日韩精品人妻中文字幕不卡乱码| 亚洲一区二区三区麻豆传媒| 动漫爆乳3D奶水一区在线观看 | 国产精品一区二区麻豆| 欧美色图91| 中文字幕aⅴ在线视频| 精品人人插人人操| 裸体1区| 国产无码精品无码| 久久久久久69国产一区二区 | 97硬碰| 超碰97欧美日韩| 自拍偷拍国产欧美日韩韩| 920日本午夜免费| 日日AAvv| 欧美亚洲色图另类国产| 大香蕉免| 欧美日韩国产一区二区小黄片大全| 久久综合婷婷| 美女上床网站| 夜夜爽77777| 大香蕉中文| 玖玖在线视频| 三四中文字幕| 欧美人妻精品| 91香蕉国产尤物视频| 按摩中文字幕| 综合色欧美| 91女神在线视频| 色在线综合| 欧洲精品人妻| 日本国产成人亚洲精品无码| chaopen97久久| 色婷婷五月天| 精品视频一区二区| 日韩精品人妻系列无码天堂| 成人自拍三级在线观看| 久久伦理视频久久大香蕉视频| 东京热男人的天堂精品| 9九九国产| 黄色乱论网站| 欧美—性—交—色| 五月婷婷hd| 九九九九九九九九九九九九九九九女| 亚洲色图美腿丝袜| 亚欧美无遮挡| 少妇贴图| 无套后入双马尾| 91呆哥人妻| 亚洲无线码欧洲精品区别| 久久风骚城市| 精品一区二区三区四区外站| 人妻一区二区三区| 成人一级性爱| 理论久久婷婷网8| 久久av成人无码免费| 亚洲日韩欧美一区二区| 国产成人资源| 在线性黄高清免费视频| 9国产超碰| 婷婷性网| 久久这里| 亚洲熟妇极品| 婷婷激情五月天小说网| 成人羞羞视频国产| 热G综合热G中文| 男人的天堂一区三区| 欧美性爱一区二区三区| 91女优在线观看| 久久久98网站免费视频| 欧美亚洲中文字幕| 国产无吗在线播放| 99热在线播放| 国产精品一二三| 老女人碰碰在线碰碰视频| 精品久久99| 久久精品国产亚洲AV片多多| 少妇一级无码精品| 偷拍 亚洲 欧美| 9久9久9久9久视频网站| 熟妇精品juliaannAV| 看日韩美女二区三区免费操逼视频| 国产精品无码久久久久2025| 99re视频在线播放青草| 亚洲免费精品一区| 国产青视频| 国产91美女高潮| 99热精品在线| 日本三级R| 久久久久久久伊人精品| 一区二区三区视频| 亚洲 欧美 色图| 日曰骚久久精品| 久久精品无码专区| 亚洲色电影在线| 亚洲色图欧美一区二区不卡| 国产操逼网站亚洲一级黄色| 男人的天堂1024| 日韩精品午夜操呦呦不卡影院| 亚洲美腿丝袜香蕉影视欧美成人| 天天操狠狠日夜夜干超大胆开放com大香蕉视频在线观看 | 97欧美性爱| 亚洲第2页| 日韩一级片在线看| 免费观看的av| 欧美性色综合网| 色拍偷亚洲| 好爽视频在线观看视频| 亚洲中文字幕在线视频一区二区| 大JI巴好深好爽又大又粗视频| 人人么人人操| A级片日韩欧美国产欧美视频精选观看 | 男人午夜天堂| 91伊人久| 韩国一区二区精品亚洲| 日本999精品| 熟女少妇视频| 日日噜噜夜夜狠狠视频无| 综合久久六月久久婷婷| 玖色AV| 国产精品在线一区二区| 久久久久白虎| yiqicaoav| 另类 日韩 熟女| 精品无码一区二区| 碰超人人在线一区二区三区| 97视频在线免费| 91综合色| 六月婷婷综合| www. 男人天堂成人在线| 大香蕉久久| 秋霞成人一级在线观看| 色香色香欲天天天影视综合网| 亚州色国| 国产精品一区av在线| 婷婷色综合| 日韩欧美三级| 911粉嫩人妻| 韩日精品福利视频一区不卡在线免| 天天天肏屄肏屄肏屄欧美欧美| 亚洲色图欧美色图日韩色图| 熟女丰满人妻一区| 亚洲一二三四区在线免费看视频| 免费看黄片现成| 熟女丝袜视频| 高清有码一区二区| 五月天婷婷久久| 亚洲色阁| 亚洲色图国产另类| 久久性爱免费送| 九七毛片九九毛片| 99色视频| 日本中文熟女视频| 国产熟妇一区二区| 日韩无码a片| 亚洲在线A| 五月婷婷六月丁香| 欧美亚洲国产91在线| 一区二区你上我| 超碰99在线| 婷婷丁香六月天| 三级色综合| 欧美性第1页| 大胆91| 中文字幕日韩专区精品系列| 久久偷拍人| 亚洲精品中文字幕一区在线视频| 天天操天天日天天干| 九九色图| 97超碰站| 超碰是碰在线观看| 色人久久| 影音先锋乱| 国产强奸乱伦第1页| 国产美女91视频| 中文字幕 国产区| 激情 欧美 亚洲 小说| 91超碰在线播放| 国产13区| 操逼www.| 日本淫乱女一区二区三区视频| 97久久精品不卡| 午夜精品99久久久久传媒| 91精品久久久| 欧美综合网| 欧美狠狠弄| 精品人妻伦一二三区久久| 二男一女成人A片| 亚洲欧美另类图片| 狠综合网| 一区 欧美 日韩 麻豆| 天天插天天操| 九九探花视频在线观看| 中文?日韩?免费?精品| 色97欧美| 九九九九热只有精品| 亚洲欧美另类少妇精品| 欧亚性爱视频免费看| 天天噜| 四虎在线视频| 色网亚洲人| 青娱乐 青青青操 日逼| 精品久久久不卡一区二区| 欧美专利1区2区3区4区5区免费| 天天日天天干天天整| 操逼操逼视频操逼| 丁香九月婷婷| 精品免费一区| 国产精品爆乳懂色蜜乳| 欧美极品| 日本一区二区亚洲综合| 日韩精品在线视频,日韩精品……| 亚洲天天更新| 操人妻视频| 热99这里有精品综合久久 | 人妻碰碰碰碰碰碰| 国产最新AV| 丰满精品人妻少妇久久字幕| 992视频一区| 人人看人人插| 婷婷丁香在线| 久久精品99久久久久久| 九九九九九九视频免费| 无码区蜜乳| 91啪啪| 狠狠欧美| 97亚洲中文| 欧美强奸乱能| 欧美一区二区情色| 啊啊啊 在线| 亚洲熟女乱色一区二区三区| 91天美| 久久黄色视频一区二区三区 | 国产乱子伦久久精品综合一区二区三| 大色网久久| 综合国产影视三级| 麻豆亚洲Av成人无码一区精品| 蜜屁Av| 你懂的在线观看区国产| 岛国艾薇凹凸视频天堂| 日韩一999精品| 噜噜噜噜久久久精品免费| ..日韩av毛片精品久久久| 婷婷综合激情| 91欧美www| 五月天大香蕉| 懂色AV网| 91美女丝袜诱惑视频| 成人AV在线网站| 自拍大香蕉乱插| 日韩色图 一区二区| 26uuu国产日韩综合在线观看| 99热导航| 无码操逼视频一下| 免费亚洲国产精品久久一区| 老司机天天操| 青娱乐 成人娱乐在线| nuu12国产麻豆精品| 999国产精品999| 久久久啊啊啊| 久久久人体| 自拍偷拍国产欧美日韩韩| 欧美香蕉视xxx| 日韩精品 视频一区二区| 亚洲鸥美色图| 激情丁香五月婷婷| 操碰97| 国产又大又粗又色生活片亚洲国产精品成人久久久综合免费 | 久久精品人妻一区二区| 熟女精品va中文字幕| 国内外毛片在线观看| 色婷婷基地| 国产一区二区三区视频在线看| 欧美日韩97在线| 婷婷爱五月| 天天精品| 亚洲一区二区三区春色| 97久久国产亚洲精品超碰热| 天天弄天天操| 操逼操逼逼操操逼91 | 精品中文字幕一区二区l - 百度| 日日骚一区二区三区| 超碰精品| 六九九九| 色悠久久久av| 国产9 9在线 | 亚洲| 欧美久久婷| 亚洲无码超碰免费| 久久久久96| 亚洲情色91| 性色av大全| 蜜桃AV天堂| 精品乱码久久久久| 欧美天天插| 97国产成人精品免费视频| A级片日韩欧美国产欧美视频精选观看| 一区超碰一区| 久久9 9 9精品| 五月丁香色色网| 五十路三级片| 影视综合无码少妇| 日韩性爱长视频免费| 日本韩国五十路六十路七十路老熟女作爱视频网站 | 99热综合| A级毛片在线看免费| 99精品人人爽| www.狠狠干.coom| 欧美日韩91| 婷婷视频网| 激情开心五月天| 3028国产精品| 操人91| www.婷婷| 天天综合网久久ww| 激情四射五月天| 91插B网站| 国产精品第一页国产大屁股视频免费区i| WWW.加勒比人妻一区不卡.com| 天天舔九色婷婷| 91痴汉| 欧美色性情| 国产成人拍国产亚洲精品| 三级色综合| 婷婷色在线| 中文字幕第页| 四虎免费看黄| 久草在| 97人人爱人人乐| 国产兽交视频在线播放| 乱欲一区二区| 精品久久99| 国产精品3| A 天堂| 久久伊人大香蕉| www.高清无码诱惑一区.com | 中文字幕天天操| 日本道人妻久久久在线不卡色视频| 超碰美国| 一区在线观看中文字幕| 偷窥自拍亚洲色图| 夫妻AV网站| 乱伦a片视频| 男人的天堂2019AV| 台湾佬中文娱乐网久久久久久久久久com| 精品无码少妇| 亚洲日韩精品一区二区| 日韩中文字幕二区| 午夜性| 亚洲?V高清一区二区三区尤物| 人人射人人操人人摸| 97超久碰| 在线播放成人高清免费视频| 97色碰| 精品九九九九九| 欧美色婷婷| 亚洲天天自拍| 久久99视频| 伊人国产AV| 人人操AV| 九九九网站| 另类视频在线| 78精品在线| 人妻久久久久久| 亚洲精品九九九| 麻豆黄色五月天| 福利社区午夜一区二区| 91成人在线| 97超碰人妻| 97超碰逼| 韩国一级婬片A片无码天美| 9久精品视频在线观看| 日韩激情啪啪啪| 青青操狠狠撩| 中美日韩毛片| 国产一区二区三区白丝| 曰韩中文人妻视频| 中文字幕一区二区三区四五区| 日韩国产十八禁| 在线观看一卡二卡| 欧美精品1区2区3区| 无码一区二区精品视频久久久春药| 欧美色图20p| 97久久综合网| 玖玖97综合| 郑州宾馆老熟女露脸啪啪| 自拍二页| 亚洲成av人片色午夜乱码| 美女爽到高潮91| 男人的天堂啪啪| 日本欧美韩国国产在线| 97超碰色色| 久久人妻无码毛片A片麻豆| 亚洲国产激情国产av| 国产在线综合福利网站| 偷拍五区| 91久青| 亚洲操逼无码| 成年人免费观看网站| 亚洲激情综合另类| 欧姜老司机| 色官网在线| 97在线欧| caorenqi shipin| 蜜臀久久99精品久久久久久酒店| 黑人嘿嘿嘿超爽免费视频| 欧美青青视频| 女人 A一级| 97爱b| 午夜精品探花| 国产精品无码av在线 | 成人短视频在线观看| 亚洲视频一二区| 免费综合亚洲中文| 日本不卡免费二区| 又黑又大又粗| 涩涩这里只有精品视频| 亚洲AV在线资源| 国产福利精品最新在线 | 一本一道久久综合久久| 亚洲色婷婷综合久久一区二区三区| 国产第二页| 在线观看十八禁| 偷拍超碰| 91爱欧美| 欧美精品激情| 中文字幕丰满人妻日本| 999久久久免费精品国产牛牛| 人妻丰满熟妇一区二区三| 婷婷丁香五月天综合东京热| 国产97视频免费观看| 九月丁香婷婷| 日本欧美亚洲高清在线看| www久| 欧美大香蕉在线观看| 91天射| 妇女乱色二区| 久久精品国产精品一区|