對于log.info()和log.error()或log.debug()來說,這兩個例外object (e)和e.getMessage()哪一個更合適
對于不同的日志級別,應該遵循什么/經驗法則。
uj5u.com熱心網友回復:
這真的取決于拋出例外的原因。我想在這里也加入WARN級別的考慮。如果這是一個不應該發生的意外錯誤,意味著這是代碼庫的問題,你肯定應該記錄整個例外物件,特別是為了獲得堆疊跟蹤,讓開發人員能夠更快地發現并可能修復問題。因此,如果是系統出了問題,這種情況應該記錄在ERROR級別,如果是客戶的資料出了問題,則記錄在WARN級別。
INFO級別確實不應該包含例外細節,它應該讓非開發人員(例如測驗人員)容易閱讀資訊,并描述資料處理流程中最重要的部分。
我認為把例外放在DEBUG級別是由你決定的,但我仍然建議不要這樣做,只是為了讓事情更清晰,或者使用e.getMessage()來描述它。
P.S. 一般來說,我會將這個問題重定向到這個頁面,因為它是一個普通的SE問題,但由于你問的是使用特定的Java功能,我想把事情放在正確的地方。
uj5u.com熱心網友回復:
不要試圖創建一個固定的規則,根據日志級別包括或不包括堆疊跟蹤。相反,當創建一個日志條目時,問問自己:
這將大大改善您的日志質量。
作為一個非常粗略的經驗法則,只要你記錄了一個例外,就應該包括堆疊跟蹤。例外意味著出了問題,這可能涉及到開發人員的分析,如果日志條目只寫著 "NullPointerException "而沒有提示它來自哪里,那么開發人員會非常不高興。
在典型的日志級別中,INFO 可能是一個不針對開發人員的級別(因此不要求提供堆疊跟蹤),但一般來說,你不希望對例外使用 INFO。
轉載請註明出處,本文鏈接:https://www.uj5u.com/gongcheng/320032.html
標籤:
