Python的logging模塊中的error和exception區別


引言:

最近在做UI自動化,一直傻傻分不清到底應該用error記錄日志還是exception來記錄,查了很多資料后,現在終於清楚了,為避免后期又遺忘,寫個小文記錄一下,也算總結一下下。

 

一、共同點:

1. logging模塊有6個級別,由低到高為NOTSET>>DEBUG>>INFO>>WARNING>>ERROR>>CRITICAL,其實無論是error還是exception,它們的錯誤等級都是ERROR級別,看下面的事例:

通過終端,我們可以看到日志信息中,錯誤級別都是ERROR

 

二、異同點:

1. error級別的只輸出錯誤的異常信息,而沒有具體的錯誤堆棧信息,如果想要排查具體異常僅通過上面的異常message內容是遠遠不夠的

2. exception級別的則不但會輸出錯誤的異常信息,還會顯示具體的錯誤堆棧信息,使得我們在排查問題的時候有更加明確的方向

請看下面的事例:

 

 通過終端,我們可以看到exception比error多輸出了錯誤堆棧信息,這樣我們可以更快地通過這些信息去定位錯誤並解決

 

三、兩者關系

那么error是否可以跟exception一樣也輸入具體的錯誤堆棧信息呢?當然可以

我們只需要在error處指定一個參數的值,這個參數就是exc_info=True即可,如下:

 

 現在發現了嗎?它們輸出的結果是一樣的,其實我們通過源碼也可以看出來,它們之間的關系:

 

好啦,其實這兩種都可以用,看個人喜好。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM