引言:
最近在做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即可,如下:
現在發現了嗎?它們輸出的結果是一樣的,其實我們通過源碼也可以看出來,它們之間的關系:
好啦,其實這兩種都可以用,看個人喜好。