鍍金池/ 問答/Java  網(wǎng)絡(luò)安全/ 如何在發(fā)送異常時(shí),把整個(gè)調(diào)用鏈的debug日志打印出來。

如何在發(fā)送異常時(shí),把整個(gè)調(diào)用鏈的debug日志打印出來。

在 WEB 開發(fā)過程中,比如 Dao 層發(fā)生運(yùn)行時(shí)異常可以在 WEB 異常處理器中捕獲并打印出異常信息,但是在請求到哪 Dao 層時(shí),經(jīng)過了層層方法,假設(shè)每個(gè)方法中都有相應(yīng)的 DEBUG 日志,如果才能更好更優(yōu)雅的讓異常時(shí),將異常前的所有 DEBUG 日志也記錄下來,而非僅記錄當(dāng)前異常方法的上下文信息,而是整個(gè)請求調(diào)用鏈的 DEBUG 信息也打印?

在CSDN 中找到一遍類似的問題,但是為得到答案。

如何當(dāng)發(fā)生異常時(shí),能把上文的debug日志也打印出來?

回答
編輯回答
久愛她

不知道我理解的對不對,調(diào)用鏈中使用了很多 log.debug(...) 而你的日志級別是info正常情況下這個(gè)日志是不打印到日志文件的 ,你的希望是當(dāng)發(fā)生異常的時(shí)候,把本次調(diào)用鏈上的debug級別的日志都輸出出來。

這種比較難實(shí)現(xiàn),我覺得無非是想定位問題,有一些動態(tài)調(diào)整日志級別方法,當(dāng)線上訪問量很大的時(shí)候設(shè)置為info,當(dāng)你需要調(diào)試問題是設(shè)置為debug,調(diào)試完成之后再改回info

可以參考:
https://tech.meituan.com/chan...

只能提供這么多信息,我也比較關(guān)心這個(gè)問題,如果能實(shí)現(xiàn)上面描述的問題,排查問題應(yīng)該會好很多。

2018年2月19日 15:48