如何使用python中的logging日志模塊?
今天馬哥教育要跟大家分享的文章是如何使用Python中的logging日志模塊?熟悉Python的小伙伴們都知道日志是程序不可或缺的一部分。日志可以記錄程序的運行情況,幫助我們更便捷地發(fā)現(xiàn)問題,而Python中的logging日志模塊給我們提供了這個機會。Python入門新手和正在Python學習的小伙伴快來看一看吧,希望能夠對大家有所幫助 !
logging給我們提供了五種函數(shù)用來輸出日志:debug()、info()、waring()、error()和critical()
這五種函數(shù)的使用場景:
DEBUG:詳細信息,典型地調試問題時會感興趣。
INFO: 證明事情按預期工作。
WARNING: 表明發(fā)生了一些意外,或者不久的將來會發(fā)生問題(如‘磁盤滿了’)。軟件還是在正常工作。
ERROR:由于更嚴重的問題,軟件已不能執(zhí)行一些功能了。
CRITICAL:嚴重錯誤,表明軟件已不能繼續(xù)運行了。
這篇文章只介紹logging的簡單使用,下一篇文章將會介紹設置復雜的配置,以便滿足更多的需求
簡單配置
簡單的配置適用于小的腳本文件中或者是小的項目中
首先我們利用了logging.basicConfig()函數(shù)設置logging。下面介紹其中的屬性
level,設置需要捕獲的日志級別,如果日志消息的級別高于設定的值則捕獲該日志消息把它打印到屏幕上或者存儲到文件中,如果低于該級別則不捕獲
format,用于設置日志消息的格式
Attribute Format Description
asctime %(asctime)s 將日志的時間構造成可讀的形式,默認情況下是‘2016-02-08 12:00:00,123’精確到毫秒
filename %(filename)s 包含path的文件名
funcName %(funcName)s 由哪個function發(fā)出的log
levelname %(levelname)s 日志的最終等級(被filter修改后的)
message %(message)s 日志信息
lineno %(lineno)d 當前日志的行號
pathname %(pathname)s 完整路徑
process %(process)s 當前進程
thread %(thread)s 當前線程
filemode:設置記錄日志的方式,'w'將會重新改寫整個日志文件,'a'將會在原來的文件中追加內容
3. datefmt:可以設置日志消息中時間的顯示格式
4. filename:設置將日志記錄到那個文件當中,如果不設置這個值,日志將會打印到屏幕上
5. filemode:設置將日志寫入文件的方式,'a'是追加到文件中,'w'是重寫文件
注意:上面配置的屬性都是可選的,他們都是有默認值的
分析代碼
在代碼中我們將日志以追加的方式寫到同目錄中的my.log中,并設置了消息的格式和處理消息的級別是INFO,所以只有
INFO和比INFO級別更高的日志消息我們才會記錄捕獲
我們設置了兩個函數(shù)test1、test2,在test1中
test1
我們可以在日志消息中引用變量,我們看看運行的效果
my.log
可以看到只在my.log文件中寫入了info和warning消息,而程序中的debug消息并沒有寫入,這是因為debug的級別小于info。
以上就是馬哥教育今天為大家分享的關于如何使用Python中的logging日志模塊的文章,希望本篇文章能夠對正在Python學習和從事Python相關工作的小伙伴們有所幫助,想要了解更多相關知識記得關注馬哥教育官網。最后祝愿小伙伴們工作順利!
聲明:文章來源于網絡,侵刪!