python日誌 logging模組

2021-10-09 01:16:29 字數 3126 閱讀 9409

日誌級別

使用場景

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...