日誌級別
使用場景
debug
詳細資訊,一般只在除錯問題時使用
info
證明事情按預期工作
warning
某些沒有預料到的時間提示,或者在將來可能會出現的問題提示
error
由於更嚴重的問題,軟體已不能執行一些功能了
critical
嚴重錯誤,表明軟體已不能繼續執行了
注釋:嚴重級別 : critical>error>warning>info>debug
預設等級: warning
設定輸出日誌級別: 如果日誌等級是warning, 日誌只能列印warning 和 以上的日誌內容, 嚴重級別小於waring是不列印的
預設生成的root logger的level是logging.warning,低於該級別的就不輸出了
引數輸出內容
%(name)s
logger的名字
%(levelno)s
數字形式的日誌級別
%(message)s
使用者輸出的資訊
%(levelname)s
文字形式的日誌級別
%(pathname)s
呼叫日誌輸出函式的模組的完整路徑名,可能沒有
%(filename)s
呼叫日誌輸出函式的模組的檔名
%(module)s
呼叫日誌輸出函式的模組名
%(lineno)d
呼叫日誌輸出函式的語句所在的**行
%(asctime)s
字串形式的當前時間。預設格式是 「2003-07-08 16:49:45,896」。逗號後面的是毫秒
%(thread)d
執行緒id, 可能沒有
%(threadname)s
執行緒名。可能沒有
import logging
logging.debug(
'it is debug'
)logging.info(
'it is info'
)logging.warning(
'it is waring'
)logging.error(
'it is error'
)logging.critical(
'it is critical'
)輸出只有:
warning:root:it is waring
error:root:it is error
critical:root:it is critical
注釋: 預設生成的root logger的level是logging.warning,低於該級別的就不輸出了
import logging
#建立乙個logger
logger = logging.getlogger(
)#設定log等級開關
logger.setlevel(logging.info)
logfile =
'recorder.log'
fh = logging.filehandler(logfile, mode=
'w', encoding=
'utf-8'
)#設定輸出格式
fh.setlevel(logging.debug)
#設定格式
formatter = logging.formatter(
'%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
)fh.setformatter(formatter)
#將logger新增到hander裡面
logger.addhandler(fh)
logger.debug(
'this is a logger debug message'
)logger.info(
'this is a logger info message'
)logger.warning(
'this is a logger warning message'
)logger.error(
'this is a logger error message'
)logger.critical(
'this is a logger critical message'
)
import logging
import json
defcreate_log()
: logger = logging.getlogger(
)# 設定log等級開關
logger.setlevel(logging.info)
logfile =
'warrp.log'
fh = logging.filehandler(logfile, mode=
'w', encoding=
'utf-8'
)# 設定輸出格式
fh.setlevel(logging.debug)
# 設定格式
formatter = logging.formatter(
'%(asctime)s - %(filename)s[line:%(lineno)d] - %(levelname)s: %(message)s'
) fh.setformatter(formatter)
# 將logger新增到hander裡面
logger.addhandler(fh)
return logger
defwrite_log
(func)
:def()
: result = func(
) logger = create_log(
) logger.info(json.dumps(result)
)return result
@write_log
deffunc()
:return
if __name__ ==
'__main__'
: func(
)
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...