如何使用Python的logging模組

2022-03-11 17:36:47 字數 3368 閱讀 3605

幾個學習連線:

翻譯(不過是2.3版本的)

另外的乙個人的總結:

最好理解,寫的最好的:

我的學習總結基於

以乙個簡單的日誌系統為例子進行說明:

目標:建立乙個日誌系統,這個日誌系統不僅能把資訊輸出到控制台,還可以輸出到檔案。?1

2345

6789

1011

1213

1415

1617

1819

2021

2223

2425

2627

2829

#import logging包

importlogging

#建立乙個logger

logger=logging.getlogger('')

#設定logger的等級,大於等於這個等級的資訊會被輸出,其他會被忽略

logger.setlevel(logging.debug)

#handler是英文翻譯為處理者,用於輸出到不同的地方:stream為控制台,file為檔案

#以下建立的是輸出到檔案的handler,並把等級設為debug

fh=logging.filehandler('test.log')

fh.setlevel(logging.debug)

#以下建立的是輸出到控制台的handler,並把等級設為debug

sh=logging.streamhandler()

sh.setlevel(logging.debug)

#下面指定了handler的資訊輸出格式,其中asctime,name,levelname,message都是logging的關鍵字

formatter=logging.formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')

fh.setformatter(formatter)

sh.setformatter(formatter)

#把handler加入到logger中,可理解為給處理者在logger中安排了職位

logger.addhandler(fh)

logger.addhandler(sh)

#記錄一條為」hello,arsenal!」的info日誌資訊

logger.info('hello,arsenal!')

print("process end!")

注意:logger.setlevel(lvl)

設定logger的level, level有以下幾個級別:

notset < debug < info < warning < error < critical

如果把looger的級別設定為info, 那麼小於info級別的日誌都不輸出, 大於等於info級別的日誌都輸出

思考題:

執行下面的日誌系統,找出錯誤並改正。?1

2345

6789

1011

1213

1415

1617

1819

20importlogging

logger=logging.getlogger('lylogger')

logger.setlevel(logging.debug)

fh=logging.filehandler('test.log')

fh.setlevel(logging.debug)

sh=logging.streamhandler()

sh.setlevel(logging.debug)

formatter=logging.formatter('%(asctime)s - %(name)s - %(levlename)s - %(message)s')

fh.setformatter(formatter)

sh.setformatter(formatter)

logger.addhandler(fh)

logger.addhandler(sh)

logger.info('hello,arsenal!')

print("process end!")

答案:通過檢視錯誤資訊,定位key :levlename,得知關鍵字levelname寫錯了。

Django專案如何正確配置日誌 logging

當django專案正式部署上線後,我們需要設定debug false。這時開發者應怎樣檢查django程式在生產環境執行時有什麼異常或錯誤呢?答案就是日誌 logging 在生產環境中,django預設是不會在伺服器上自動生成log檔案的,即使程式出現error級別的故障也不會通知管理員。本文將教你...

FME如何使用Python?

安裝fme後,在fme的安裝路徑中,找到 fmeobjects 資料夾 c program files fme fmeobjects 在fmeobjects 資料夾中,我們可以看到名為python版本的資料夾,因fme的版本不同,支援的python版本有所差異 以fme 2018 x64為例 選擇需...

python的help函式如何使用

python的help函式如何使用 help函式是python的乙個內建函式,在python基礎知識中介紹過什麼是內建函式,它是python自帶的函式,任何時候都可以被使。help函式能作什麼 怎麼使用help函式檢視python模組學習中函式的用法,和使用help函式時需要注意哪些問題,下面來簡單...