隨手養成 Python 好習慣-簡單導入 logging 模組

Posted on  Sep 9, 2016  in  Python 程式設計 - 初階  by  Amo Chen  ‐ 2 min read

如果說最方便且偷懶的對程式進行除錯訊息的記錄是 print() 的話,那麼我的建議是-「如果你正在使用最方便且偷懶的方法,而且知道這種方式不好的話,那麼請花費一點點時間看完這篇文章;如果你早已經像喝水一樣自然地使用 logging 模組的話,可以不需要在閱讀此篇文章」

學會使用 logging 模組的好處,並非是要將 print() 完全從程式中除去,而是希望對程式產生的訊息進行分層控管,甚至能夠針對不同級別的訊息進行過濾、處理與通知,例如 log 出現 critical 級別的訊息時,我們真的很希望第一時間得到通知,那麼使用 logging 模組並且實作自己對於 critical log 的處理器(handler),真的是 Z>B 。

logging 最簡單的使用方式,在 Cory 所分享的 A Brief Digression About Loggin 這篇文章中就已經寫得十分清楚了。

依照 Cory 的方式,如果是希望在模組中使用 logging 模組的話:

在模組中的 __init__.py 中加入以下程式碼:

import logging
logging.getLogger(__name__).addHandler(logging.NullHandler())

在模組中其他程式第一行加上以下程式碼。

log = logging.getLogger(__name__)

依照需求自行添加 log.debug() , log.info() , log.warning() , log.error() , log.critical() 5 種級別的 log 記錄方法。

不過需要注意的是,預設這些 log 訊息是沒有被開啟的,因此 Cory 又描述了如何打開這些訊息的方法,即在你的主程式中加入以下程式開啟將 log 顯示的功能(可依照級別需求進行修改,例如將 logging.DEBUG 修改為 logging.INFO )。

import logging
logging.basicConfig(level=logging.DEBUG)

或者可以將上述 log 顯示方式改為記錄到檔案之中( logging.basicConfig(level=logging.DEBUG, filename='debug.log') )。

以上就是 Cory 提供的簡單方法,如果對其他使用方式有興趣的話,可以再看看官方文件尋找更多用法。

參考資料:

https://docs.python.org/2/library/logging.html

https://lukasa.co.uk/2014/05/A_Brief_Digression_About_Logging/

對抗久坐職業傷害

研究指出每天增加 2 小時坐著的時間,會增加大腸癌、心臟疾病、肺癌的風險,也造成肩頸、腰背疼痛等常見問題。

然而對抗這些問題,卻只需要工作時定期休息跟伸展身體即可!

你想輕鬆改變現狀嗎?試試看我們的 PomodoRoll 番茄鐘吧! PomodoRoll 番茄鐘會根據你所設定的專注時間,定期建議你 1 項辦公族適用的伸展運動,幫助你打敗久坐所帶來的傷害!

贊助我們的創作

看完這篇文章了嗎? 休息一下,喝杯咖啡吧!

如果你覺得 MyApollo 有讓你獲得實用的資訊,希望能看到更多的技術分享,邀請你贊助我們一杯咖啡,讓我們有更多的動力與精力繼續提供高品質的文章,感謝你的支持!