python使用logging庫可以簡單明瞭的格式化輸出log到終端或檔案。
when 是乙個字串的定義如下:
「s」: seconds
「m」: minutes
「h」: hours
「d」: days
「w」: week day (0=monday)
「midnight」: roll over at midnight
使用下面方法把log輸出到終端:
import logging
log_format =
"[%(asctime)s][%(levelname)s]: %(message)s"
level = logging.info
logging.basicconfig(level=level,
format
=log_format)
log.info(
'test'
)log.warning(
'test'
)log.error(
'test'
)
通過timedrotatingfilehandler可以把輸出重定向到檔案,它會對比檔案最後修改時間和當前時間,如果比設定的時候大,則會把當前檔案加時間字尾備份,然後,新建乙個進行log。
import logging
from logging.handlers import timedrotatingfilehandler
import time
deflog_config()
: log_format =
"[%(asctime)s][%(levelname)s]: %(message)s"
fname=time.strftime(
"news_%y%m%d.log"
, time.localtime())
level = logging.info
logging.basicconfig(level=level,
format
=log_format)
#建立timedrotatingfilehandler物件,每天生成乙個檔案
log_file_handler = timedrotatingfilehandler(filename=
'test.log'
, when=
"d", interval=
1, backupcount=3)
# 設定日誌列印格式
formatter = logging.formatter(log_format)
log_file_handler.setformatter(formatter)
logging.getlogger('')
.addhandler(log_file_handler)
defmain()
:try:10
/0except
: logging.error(
'divider error.'
, exc_info=
true
)
如果對log檔案的大小有要求,則可以使用rotatingfilehander對log的檔案大小進行限制。
import logging
from logging.handlers import rotatingfilehandler
deflog_config()
: log_format =
"[%(asctime)s][%(levelname)s]: %(message)s"
fname=time.strftime(
"news_%y%m%d.log"
, time.localtime())
level = logging.info
logging.basicconfig(level=level,
format
=log_format)
#建立rotatingfilehandler物件,滿1mb為乙個檔案,共備份3個檔案
log_file_handler = rotatingfilehandler(filename=
'test.log'
, maxbytes=
1024
*1024
, backupcount=3)
# 設定日誌列印格式
formatter = logging.formatter(log_format)
log_file_handler.setformatter(formatter)
logging.getlogger('')
.addhandler(log_file_handler)
Python 日誌 logging 模組
對於小型專案而言,大家習慣於使用print語句列印資訊到終端進行除錯,然而,當專案 量擴大到了一定級別後,列印除錯的方法就顯得很凌亂了,更重要的是,當debug完成後,甄別並刪除 或注釋 除錯用的列印語句變得非常令人頭痛。而使用日誌模組則能很好地解決這些問題。日誌 logging 是在程式執行過程中...
python 日誌使用logging
將日誌列印入檔案,同時列印在控制台 logfile.py coding utf 8 import sys import logging from logging.handlers import timedrotatingfilehandler def getlogconfig name defaul...
Python日誌模組logging
logging分為4個模組 loggers,handlers,filters,and formatters.logger logger.setlevel 設定日誌級別 logger.addhandler 和logger.removehandler 增加和刪除日誌處理器 logger.addfilte...