用python寫**的時候,在想看的地方寫個print xx 就能在控制台上顯示列印資訊,這樣子就能知道它是什麼了,但是當我需要看大量的地方或者在乙個檔案中檢視的時候,這時候print就不大方便了,所以python引入了logging模組來記錄我想要的資訊。
import logging # 引入logging模組
# 將資訊列印到控制台上
logging.debug(
"蒼井空"
)logging.info(
"麻生希"
)logging.warning(
"小澤瑪利亞"
)logging.error(
"桃谷繪里香"
)logging.critical(
"瀧澤蘿拉"
)
預設生成的root logger的level是logging.warning,低於該級別的就不輸出了
級別排序:critical > error > warning > info > debug
logging.basicconfig(filename=
'sitemap.log'
, level=logging.info,
format
='%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
)logger = logging.getlogger(
)
封裝成類的操作
import logging
class
logggerhelper()
:"""自定日誌之類"""
def__init__
(self, level)
: self.level = level
defmy_log
(self,name)
:# 建立自己的日誌收集器
my_log = logging.getlogger(name)
my_log.setlevel(self.level.upper())
# 建立乙個日誌輸出渠道(輸出到控制台)
handler1 = logging.streamhandler(
) handler1.setlevel(self.level.upper())
# 建立乙個日誌輸出渠道(輸出到檔案)
handler2 = logging.filehandler(
'log.txt'
, encoding=
'utf8'
) handler2.setlevel(self.level.upper())
# 將輸出渠道新增到日誌收集器中
my_log.addhandler(handler1)
my_log.addhandler(handler2)
# 設定日誌輸出的格式
formatter =
'%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
ft1 = logging.formatter(formatter)
# 設定日誌輸出的格式
handler1.setformatter(ft1)
handler2.setformatter(ft1)
return my_log
呼叫
from loggerhelper import logggerhelper
logger = logggerhelper(
'debug'
).my_log(
'database'
)logger.info(
'test'
)logger.error(
'test error'
)
這裡需要注意的是
logger = logggerhelper(『debug』).my_log(『database』)
為日誌函式新增乙個name,每次呼叫例項化不同的物件,不然會有重複列印日誌的問題
Python模組 logging模組列印日誌
python模組 logging 一 簡單日誌列印 直接使用logging模組,列印日誌到螢幕 預設輸出日誌的格式 日誌級別 logger名稱 使用者輸出訊息 預設的日誌級別設定為warning,logging模組將日誌列印到標準輸出中,且只顯示大於等於warning級別的日誌 日誌級別等級crit...
使用python內建模組logging日誌處理
import logging from logging import handlers ch logging.filehandler 自定義日誌檔案路徑名 encoding utf 8 utf 8是為了解決日誌檔案中的亂碼.常用於自己練習,正式開發用下面的方式。sh logging.streamha...
Python中logging的使用
我們先來看一下函式式簡單配置 預設情況下python的logging模組將日誌列印到了標準輸出中,且只顯示了大於等於warning級別的日誌,這說明預設的日誌級別設定為warning 日誌級別等級critical error warning info debug 預設的日誌格式為日誌級別 logge...