[發明專利]一種無感知生成全鏈路日志的方法在審
| 申請號: | 202211301966.X | 申請日: | 2022-10-24 |
| 公開(公告)號: | CN115509867A | 公開(公告)日: | 2022-12-23 |
| 發明(設計)人: | 汪才淵;姜平;巫安東 | 申請(專利權)人: | 焦點科技股份有限公司 |
| 主分類號: | G06F11/30 | 分類號: | G06F11/30 |
| 代理公司: | 南京瑞弘專利商標事務所(普通合伙) 32249 | 代理人: | 陳建和 |
| 地址: | 210032 江*** | 國省代碼: | 江蘇;32 |
| 權利要求書: | 查看更多 | 說明書: | 查看更多 |
| 摘要: | |||
| 搜索關鍵詞: | 一種 感知 生成 全鏈路 日志 方法 | ||
1.一種無感知生成全鏈路日志的方法,其特征在于,包括如下步驟:
步驟1:在應用程序中引入支持MDC機制的日志框架,所述MDC機制用于在日志中注入調試信息,包括與當前輸出日志的線程綁定的鍵值對映射表,用以將調試信息以鍵值對的形式存儲在其中;
步驟2:根據應用的類型,確定日志鏈路的鏈路起點,所述鏈路起點在不同的應用類型下位置不同;
步驟3:在鏈路起點引入鏈路調用序列號生成邏輯,所述鏈路調用序列號生成邏輯包括解析鏈路調用序列號和將鏈路調用序列號添加至MDC容器中所述MDC容器是日志框架中MDC機制的具體實現;所述鏈路調用序列號生成邏輯包括檢查請求頭中是否存在透傳的鏈路調用序列號,如果不存在,則生成一個隨機字符串作為本次調用的鏈路調用序列號;
步驟4:在鏈路起點引入分支鏈路序列號生成邏輯,所述分支鏈路序列號生成邏輯包括解析分支鏈路序列號和將分支鏈路序列號添加至MDC容器中,所述分支鏈路序列號生成邏輯首先檢查請求頭中是否存在透傳的分支鏈路序列號,如果不存在,則生成一個隨機字符串作為分支鏈路序列號;
步驟5:根據應用的實現邏輯,確定日志鏈路的鏈路續接點,所述應用和鏈路續接點為一對多的映射關系,一個應用中同時存在多個鏈路續接點;
步驟6:根據鏈路續接點的類型,分別引入對應的鏈路續接邏輯;
步驟7:配置全局日志格式,在全局日志格式中設置鏈路調用序列號和分支鏈路序列號的注入點;
步驟8:調用日志打印方法;
步驟9:打印日志,將鏈路調用序列號和分支鏈路序列號追加到日志內容中。
2.如權利要求1所述的一種無感知生成全鏈路日志的方法,其特征在于:所述步驟1中,所述日志框架包括但不限于log4j、log4j2、logback;所述步驟2中,所述應用類型枚舉為分布式定時任務應用和基于Servlet的Web應用,在定時任務應用中,鏈路起點是定時任務的回調函數,在基于Servlet的Web應用中,鏈路起點是Web應用的請求過濾器。
3.如權利要求2所述的一種無感知生成全鏈路日志的方法,其特征在于:所述步驟5中,所述日志鏈路的鏈路續接點包括Servlet請求過濾器續接點、分布式定時任務回調函數續接點、線程池續接點、HTTP請求處理器續接點和Feign遠程調用續接點;所述Servlet請求過濾器續接點的續接邏輯包括:從HTTP請求頭中解析透傳的鏈路調用序列號和分支鏈路序列號,如果能夠解析出預設格式的鏈路調用序列號和分支鏈路序列號,則將解析出的鏈路調用序列號和分支鏈路序列號添加至MDC容器中;所述分布式定時任務回調函數續接點的續接邏輯包括:從請求參數中解析透傳的鏈路調用序列號和分支鏈路序列號,如果能夠解析出正確格式的鏈路調用序列號和分支鏈路序列號,則將解析出的鏈路調用序列號和分支鏈路序列號添加至MDC容器中;所述線程池續接點續接方式包括:攔截線程池的執行方法,在原執行方法正式執行之前,清理當前工作線程持有的MDC容器中的歷史數據,將父線程中持有的MDC容器的數據拷貝到當前工作線程持有的MDC容器中,生成一個隨機字符串作為分支鏈路序列號并設置到當前工作線程持有的MDC容器中;所述HTTP請求處理器續接點的續接邏輯包括:攔截HTTP請求報文,在請求報文中添加當前線程MDC容器中存儲的鏈路調用序列號和分支鏈路序列號;所述Feign遠程調用續接點是針對Feign遠程調用操作提供的續接點;所述Feign遠程調用續接點的續接方式包括:在Feign框架提供的攔截器中,添加注入鏈路調用序列號和分支鏈路序列號的邏輯;所述Feign遠程調用續接點注入鏈路調用序列號和分支鏈路序列號的邏輯包括:先從應用請求上下文中查找鏈路調用序列號和分支鏈路序列號,如果查找失敗,則繼續從當前線程持有的MDC容器中查找鏈路調用序列號和分支鏈路序列號,最后將查找到的鏈路調用序列號和分支鏈路序列號添加到請求頭中。
4.如權利要求3所述的一種無感知生成全鏈路日志的方法,其特征在于:所述步驟5中,所述鏈路調用序列號和分支鏈路序列號的預設格式為:32位長度的字母數字字符串。
5.如權利要求4所述的一種無感知生成全鏈路日志的方法,其特征在于:所述步驟5中,所述32位長度的字母數字字符串通過UUID算法生成。
該專利技術資料僅供研究查看技術是否侵權等信息,商用須獲得專利權人授權。該專利全部權利屬于焦點科技股份有限公司,未經焦點科技股份有限公司許可,擅自商用是侵權行為。如果您想購買此專利、獲得商業授權和技術合作,請聯系【客服】
本文鏈接:http://www.szxzyx.cn/pat/books/202211301966.X/1.html,轉載請聲明來源鉆瓜專利網。
- 上一篇:一種抽油桿端部直線度智能檢測設備
- 下一篇:一種取消混勻料堆的燒結礦生產工藝





