亚洲精品久久久中文字幕-亚洲精品久久片久久-亚洲精品久久青草-亚洲精品久久婷婷爱久久婷婷-亚洲精品久久午夜香蕉

您的位置:首頁技術文章
文章詳情頁

Python如何使用logging為Flask增加logid

瀏覽:94日期:2022-06-23 17:22:49

我們為了問題定位,常見做法是在日志中加入 logid,用于關聯一個請求的上下文。這就涉及兩個問題:1. logid 這個“全局”變量如何保存傳遞。2. 如何讓打印日志的時候自動帶上 logid(畢竟不能每個打日志的地方都手動傳入)

logid保存與傳遞

傳統做法就是講 logid 保存在 threading.local 里面,一個線程里都是一樣的值。在 before_app_request 就生成好,logid并放進去。

import threading from blueprint.hooks import hooks thread_local = threading.local()app = Flask()app.thread_local = thread_local

import uuid from flask import Blueprintfrom flask import current_app as app hooks = Blueprint(’hooks’, __name__) @hooks.before_app_requestdef before_request(): ''' 處理請求之前的鉤子 :return: ''' # 生成logid app.thread_local.logid = uuid.uuid1().time

因為需要一個數字的 logid 所以簡單使用 uuid.uuid1().time 一般并發完全夠了,不會重復且趨勢遞增(看logid就能知道請求的早晚)。

打印日志自動帶上logid

這個就是 Python 日志庫自帶的功能了,可以使用 Filter 來實現這個需求。

import logging # https://docs.python.org/3/library/logging.html#logrecord-attributeslog_format = '%(asctime)s %(levelname)s [%(threadName)s-%(thread)d] %(logid)s %(filename)s:%(lineno)d %(message)s'file_handler = logging.FileHandler(file_name)logger = logging.getLogger()logid_filter = ContextFilter()file_handler.addFilter(logid_filter)file_handler.setFormatter(logging.Formatter(log_format))logger.addHandler(file_handler) class ContextFilter(logging.Filter): ''' logging Filter ''' def filter(self, record):'''threading local 獲取logid:param record::return:'''log_id = thread_local.logid if hasattr(thread_local, ’logid’) else ’-’record.logid = log_id return True

log_format 中我們用了很多系統自帶的占位符,但 %(logid)s 默認沒有的。每條日志打印輸出前都會過 Filter,利用此特征我們就可以把 record.logid 賦值上,最終打印出來的時候就有 logid 了。

雖然最終實現了,但因為是通用化方案,所以有些復雜了。其實官方教程中介紹了一種更加簡單的方式:injecting-request-information,看來沒事還得多看看官方文檔。

以上就是Python如何使用logging為Flask增加logid的詳細內容,更多關于Python為Flask增加logid的資料請關注好吧啦網其它相關文章!

標簽: Python 編程
相關文章:
主站蜘蛛池模板: www.亚洲第一 | 亚洲精品一区二区三区婷婷月 | 免费人成黄页网站在线观看国产 | jiucao在线观看精品 | 最新内地三级在线观看 | 成人免费观看视频久爱网 | 六月丁香深爱六月综合激情 | 久草福利免费 | 亚洲视频不卡 | 日本最新伦中文字幕 | 欧美h片在线观看 | 午夜在线播放免费人成无 | 成人免费淫片95视频观看网站 | 欧美高清免费精品国产自 | 国产在线拍揄自揄视精品不卡 | 美女一级毛片免费不卡视频 | 俄罗斯小屁孩和大人啪啪 | 成人免费观看在线网址 | 毛片毛片毛片毛片毛片毛片毛片 | 久久国产一区二区 | 色 综合 欧美 亚洲 国产 | 精品国产3p一区二区三区 | 美女的下部隐私网站99 | 国产精品特黄一级国产大片 | 久久草精品 | 免费看成人毛片日本久久 | 欧美激情在线播放第16页 | 午夜宅男宅女 | 日韩爱爱网 | 国产乱码精品一区二区 | 天天爱天天做色综合 | 达达兔午夜国产精品 | 天天干成人网 | 国产1页| 久久国产精品999 | 国产高清一级视频在线观看 | 中文字幕亚洲综合久久2 | 高h喷水荡肉爽文np欲 | 亚洲国产天堂久久综合9999 | 一本一道久久综合狠狠老 | 女教师的一级毛片 |