97色伦色在线综合视频,无玛专区,18videosex性欧美黑色,日韩黄色电影免费在线观看,国产精品伦理一区二区三区,在线视频欧美日韩,亚洲欧美在线中文字幕不卡

鴻運(yùn)通網(wǎng)站建設(shè)谷歌網(wǎng)站英文

鶴壁市浩天電氣有限公司 2026/01/24 10:38:03
鴻運(yùn)通網(wǎng)站建設(shè),谷歌網(wǎng)站英文,怎樣給網(wǎng)站或者商品做推廣,遼陽網(wǎng)站建設(shè)企業(yè)Spring Boot 統(tǒng)一日志與鏈路追蹤實(shí)踐在真實(shí)的 Spring Boot 項(xiàng)目中#xff0c;僅僅“能跑”遠(yuǎn)遠(yuǎn)不夠。 能定位問題、能還原請(qǐng)求、能快速排障#xff0c;才是一個(gè)成熟后端系統(tǒng)的核心能力。而這一切#xff0c;都離不開 統(tǒng)一日志與鏈路追蹤#xff08;Trace#xff09;。一、…Spring Boot 統(tǒng)一日志與鏈路追蹤實(shí)踐在真實(shí)的 Spring Boot 項(xiàng)目中僅僅“能跑”遠(yuǎn)遠(yuǎn)不夠。能定位問題、能還原請(qǐng)求、能快速排障才是一個(gè)成熟后端系統(tǒng)的核心能力。而這一切都離不開統(tǒng)一日志與鏈路追蹤Trace。一、為什么要做統(tǒng)一日志與鏈路追蹤如果沒有統(tǒng)一日志常見問題包括日志格式雜亂無章不同接口日志風(fēng)格不一致一次請(qǐng)求的日志散落在多行、多個(gè)類中微服務(wù)場(chǎng)景下無法串聯(lián)完整調(diào)用鏈? 出現(xiàn)線上問題時(shí)只能“猜”。? 統(tǒng)一日志與鏈路追蹤能解決什么一次請(qǐng)求 一個(gè) TraceId所有日志都能被串起來快速定位慢接口、異常接口為監(jiān)控、告警、埋點(diǎn)提供基礎(chǔ)數(shù)據(jù)二、日志、鏈路追蹤的整體設(shè)計(jì)思路推薦分層設(shè)計(jì)請(qǐng)求入口Filter ↓ 生成 TraceId ↓ 放入 MDC日志上下文 ↓ 業(yè)務(wù)日志自動(dòng)攜帶 TraceId ↓ 請(qǐng)求結(jié)束清理 MDC三、Spring Boot 日志體系基礎(chǔ)Spring Boot 默認(rèn)使用SLF4J門面Logback實(shí)現(xiàn)推薦日志使用方式private static final Logger log LoggerFactory.getLogger(UserController.class);不要直接使用System.out.println()四、什么是鏈路追蹤Trace核心概念概念含義TraceId一次請(qǐng)求的唯一標(biāo)識(shí)Span調(diào)用鏈中的一個(gè)節(jié)點(diǎn)MDC日志上下文存儲(chǔ)在單體應(yīng)用中TraceId 就足夠五、基于 MDC 的鏈路追蹤實(shí)現(xiàn)1?? 什么是 MDCMDCMapped Diagnostic Context是 Logback 提供的線程級(jí)上下文變量存儲(chǔ)。MDC.put(traceId, xxx);日志中即可自動(dòng)打印。2?? 請(qǐng)求入口生成 TraceIdFilterComponent public class TraceFilter implements Filter { private static final String TRACE_ID traceId; Override public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) { try { String traceId UUID.randomUUID().toString().replace(-, ); MDC.put(TRACE_ID, traceId); chain.doFilter(request, response); } catch (Exception e) { throw new RuntimeException(e); } finally { MDC.remove(TRACE_ID); } } }3?? 日志配置中打印 TraceIdlogback-spring.xmlpattern %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{36} [traceId%X{traceId}] - %msg%n /pattern4?? 日志效果示例2025-01-01 10:00:01.123 [http-nio-8080-exec-1] INFO UserController [traceId9f8a3b7c2d1a4e] - 查詢用戶信息 同一次請(qǐng)求的所有日志traceId 完全一致六、統(tǒng)一請(qǐng)求日志接口維度使用 HandlerInterceptorComponent public class LogInterceptor implements HandlerInterceptor { private static final Logger log LoggerFactory.getLogger(LogInterceptor.class); Override public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) { log.info(請(qǐng)求開始: {} {}, request.getMethod(), request.getRequestURI()); return true; } Override public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex) { log.info(請(qǐng)求結(jié)束: {} {}, request.getMethod(), request.getRequestURI()); } }注冊(cè)攔截器Configuration public class WebConfig implements WebMvcConfigurer { Override public void addInterceptors(InterceptorRegistry registry) { registry.addInterceptor(new LogInterceptor()) .addPathPatterns(/**); } }七、記錄接口耗時(shí)性能關(guān)鍵long start System.currentTimeMillis(); // 業(yè)務(wù)邏輯 long cost System.currentTimeMillis() - start; log.info(接口耗時(shí): {} ms, cost);推薦統(tǒng)一在攔截器中處理避免重復(fù)代碼。八、異常日志統(tǒng)一記錄結(jié)合全局異常處理ExceptionHandler(Exception.class) public ApiResponseVoid handleException(Exception e) { log.error(系統(tǒng)異常, e); return ApiResponse.error(500, 服務(wù)器內(nèi)部錯(cuò)誤); } 異常日志必須打印堆棧九、日志分級(jí)規(guī)范非常重要級(jí)別使用場(chǎng)景DEBUG開發(fā)調(diào)試INFO關(guān)鍵業(yè)務(wù)流程WARN可預(yù)期異常ERROR系統(tǒng)異常? 不要濫用 ERROR? 不要把正常流程打成 WARN十、微服務(wù)場(chǎng)景下的鏈路追蹤擴(kuò)展1?? TraceId 透?jìng)骶W(wǎng)關(guān)生成 TraceIdHTTP Header 傳遞X-Trace-Id: xxx2?? Spring Cloud 場(chǎng)景Sleuth舊Micrometer Tracing新Zipkin / SkyWalking十一、統(tǒng)一日志最佳實(shí)踐總結(jié)? Filter 生成 TraceId? MDC 保存上下文? 日志格式統(tǒng)一? 接口日志 異常日志? 日志分級(jí)清晰十二、總結(jié)統(tǒng)一日志與鏈路追蹤是后端系統(tǒng)“可運(yùn)維性”的基石。在 Spring Boot 項(xiàng)目中MDC 是最低成本的鏈路追蹤方案單體應(yīng)用足夠用微服務(wù)可平滑升級(jí)到專業(yè)鏈路系統(tǒng)寫日志不是為了“看”而是為了在出問題時(shí)能快速定位問題。
版權(quán)聲明: 本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)聯(lián)系我們進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

下載網(wǎng)站如何做自己公司網(wǎng)站維護(hù)

下載網(wǎng)站如何做,自己公司網(wǎng)站維護(hù),國家網(wǎng)站建設(shè)的相關(guān)規(guī)定,深圳的企業(yè)排名5分鐘搭建私人音樂庫#xff1a;any-listen跨平臺(tái)播放器完整指南 【免費(fèi)下載鏈接】any-listen A cross

2026/01/22 23:09:01

百度搜錄最快的網(wǎng)站大墨免費(fèi)空間申請(qǐng)

百度搜錄最快的網(wǎng)站,大墨免費(fèi)空間申請(qǐng),可能wordpress.org或服務(wù)器配置文件存在問題,職友集 一家做公司點(diǎn)評(píng)的網(wǎng)站如今#xff0c;隨著智能手機(jī)的不斷創(chuàng)新和突破#xff0c;我們可以輕松地用安

2026/01/23 01:13:01

注冊(cè)一個(gè)網(wǎng)站的流程app開發(fā)平臺(tái)搭建

注冊(cè)一個(gè)網(wǎng)站的流程,app開發(fā)平臺(tái)搭建,沅江市建設(shè)局網(wǎng)站,網(wǎng)站模板大全下載Excalidraw#xff1a;當(dāng)手繪白板遇見AI#xff0c;協(xié)作從此“所想即所見” 在一場(chǎng)跨時(shí)區(qū)的遠(yuǎn)程產(chǎn)品評(píng)審會(huì)上#xf

2026/01/21 17:15:01