如何使用python中的logging日志模塊?
今天馬哥教育要跟大家分享的文章是如何使用Python中的logging日志模塊?熟悉Python的小伙伴們都知道日志是程序不可或缺的一部分。日志可以記錄程序的運行情況,幫助我們更便捷地發(fā)現(xiàn)問題,而Python中的logging日志模塊給我們提供了這個機會。Python入門新手和正在Python學(xué)習(xí)的小伙伴快來看一看吧,希望能夠?qū)Υ蠹矣兴鶐椭?!
logging給我們提供了五種函數(shù)用來輸出日志:debug()、info()、waring()、error()和critical()
這五種函數(shù)的使用場景:
DEBUG:詳細信息,典型地調(diào)試問題時會感興趣。
INFO: 證明事情按預(yù)期工作。
WARNING: 表明發(fā)生了一些意外,或者不久的將來會發(fā)生問題(如‘磁盤滿了’)。軟件還是在正常工作。
ERROR:由于更嚴重的問題,軟件已不能執(zhí)行一些功能了。
CRITICAL:嚴重錯誤,表明軟件已不能繼續(xù)運行了。
這篇文章只介紹logging的簡單使用,下一篇文章將會介紹設(shè)置復(fù)雜的配置,以便滿足更多的需求
簡單配置
簡單的配置適用于小的腳本文件中或者是小的項目中

首先我們利用了logging.basicConfig()函數(shù)設(shè)置logging。下面介紹其中的屬性
level,設(shè)置需要捕獲的日志級別,如果日志消息的級別高于設(shè)定的值則捕獲該日志消息把它打印到屏幕上或者存儲到文件中,如果低于該級別則不捕獲
format,用于設(shè)置日志消息的格式
Attribute Format Description
asctime %(asctime)s 將日志的時間構(gòu)造成可讀的形式,默認情況下是‘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:設(shè)置記錄日志的方式,'w'將會重新改寫整個日志文件,'a'將會在原來的文件中追加內(nèi)容
3. datefmt:可以設(shè)置日志消息中時間的顯示格式
4. filename:設(shè)置將日志記錄到那個文件當中,如果不設(shè)置這個值,日志將會打印到屏幕上
5. filemode:設(shè)置將日志寫入文件的方式,'a'是追加到文件中,'w'是重寫文件
注意:上面配置的屬性都是可選的,他們都是有默認值的
分析代碼
在代碼中我們將日志以追加的方式寫到同目錄中的my.log中,并設(shè)置了消息的格式和處理消息的級別是INFO,所以只有
INFO和比INFO級別更高的日志消息我們才會記錄捕獲
我們設(shè)置了兩個函數(shù)test1、test2,在test1中

test1
我們可以在日志消息中引用變量,我們看看運行的效果

my.log
可以看到只在my.log文件中寫入了info和warning消息,而程序中的debug消息并沒有寫入,這是因為debug的級別小于info。
以上就是馬哥教育今天為大家分享的關(guān)于如何使用Python中的logging日志模塊的文章,希望本篇文章能夠?qū)φ赑ython學(xué)習(xí)和從事Python相關(guān)工作的小伙伴們有所幫助,想要了解更多相關(guān)知識記得關(guān)注馬哥教育官網(wǎng)。最后祝愿小伙伴們工作順利!
聲明:文章來源于網(wǎng)絡(luò),侵刪!