對**程式發生錯誤的時候,通過記錄日誌的方式,來排查問題,是乙個很好的習慣
對於日誌的設定,需要以下幾點:
1- 存放路徑
2- 日誌檔名
3- 內容格式:format
2020_10_14.21.34.24 - logbasic.py [**錯誤的行號] 級別:具體內容
執行時間 檔名 【報錯行號】 等級 msg(具體資訊)
首先在專案下新建乙個logs包,用來存放日誌列印檔案
其次在tools包下面新建乙個logbasic.py檔案
importlogging
import
datetime
deflogger():
'''logging.basicconfig函式各引數:
filename:指定日誌檔名;
filemode:和file函式意義相同,指定日誌檔案的開啟模式,'w'或者'a';
format:指定輸出的格式和內容,format可以輸出很多有用的資訊,
level logging.info,
'''#
呼叫配置函式
logging.basicconfig(format='
%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s:%(message)s',
filename= f'
../logs/.txt',
level='
info',
filemode='a'
)
return
logging
if__name__ == '
__main__':
log =logger()
log.error(
'---hello---
')
然後執行上面的**,在logs包下面就可以看到錯誤日誌檔案,檔案裡面按照以上**設定好的格式,記錄的資訊
注意日誌設定的錯誤級別:
debug:最細微的資訊記錄到debug中,這個級別就是用來debug的,看程式在哪一次迭代中發生了錯誤,比如每次迴圈都輸出一些東西用debug級別
info:級別用於routines,也就是輸出start finish 狀態改變等資訊
warn:輸出一些相對重要,但是不是程式bug的資訊,比如輸入了錯誤的密碼,或者連線較慢
error:輸出程式bug,列印異常資訊
critical:用於處理一些非常糟糕的事情,比如記憶體溢位、磁碟已滿,這個一般較少使用
python列印日誌到控制台並將日誌寫入檔案
import sys import logging logger logging.getlogger log logger.setlevel logging.debug 呼叫模組時,如果錯誤引用,比如多次呼叫,每次會新增handler,造成重複日誌,這邊每次都移除掉所有的handler,後面在重新新...
python寫入日誌檔案時日誌內容重複寫入
python寫入日誌檔案時日誌內容重複寫入 原因handler未移除,導致重複寫入 問了度娘之後,大概搞明白了,就是你第二次呼叫log的時候,根據getlogger name 裡的name獲取同乙個logger,而這個logger裡已經有了第一次你新增的handler,第二次呼叫又新增了乙個hand...
flask將日誌寫入日誌檔案
import logging logging.basicconfig level logging.debug,控制台列印的日誌級別 filename log new.log 將日誌寫入log new.log檔案中 filemode a 模式,有w和a,w就是寫模式,每次都會重新寫日誌,覆蓋之前的日誌...