python3 logging 模組使用教程

2022-09-04 20:12:13 字數 4069 閱讀 3982

import logging

info

warning

error

critical

logging.debug('debug message')

logging.info('info message')

logging.warning('warning message')

logging.error('error message')

logging.critical('critical message')

# 通過下面的方式進行簡單配置輸出方式與日誌級別

logging.basicconfig(filename='logger.log', level=logging.info)

logger = logging.getlogger(logger_name)

# 設定日誌級別為error,即只有日誌級別大於等於error的日誌才會輸出

logger.setlevel(logging.error)

# 為logger例項增加乙個處理器

logger.addhandler(handler_name)

# 為logger例項刪除乙個處理器

logger.removehandler(handler_name)

handler 處理器型別有很多種,比較常用的有三個

sh = logging.streamhandler(stream=none)

fh = logging.filehandler(filename, mode='a', encoding=none, delay=false)

# nullhandler類位於核心logging包,不做任何的格式化或者輸出

# 本質上它是個「什麼都不做」的handler,由庫開發者使用

nf = logging.nullhandler()

建立 streamhandler 之後

# 指定日誌級別,低於 warning 級別的日誌將被忽略

handler.setlevel(logging.warning)

# 設定乙個格式化器 formatter

handler.setformatter(formatter_name)

# 增加乙個過濾器,可以增加多個

handler.addfilter(filter_name)

# 刪除乙個過濾器

handler.removefilter(filter_name)

# fmt是訊息的格式化字串,如果不指明fmt,將使用'%(message)s'

# datefmt是日期字串,如果不指明datefmt,將使用iso8601日期格式。

formatter = logging.formatter(fmt=none, datefmt=none)

filter = logging.filter(name='')

import logging

# create logger

logger_name = "example"

logger = logging.getlogger(logger_name)

logger.setlevel(logging.debug)

# create file handler

log_path = "demo03.log"

fh = logging.filehandler(log_path)

fh.setlevel(logging.warning)

# create formatter

fmt = "%(asctime)-15s %(levelname)s %(filename)s %(lineno)d %(process)d %(message)s"

datefmt = "%a %d %b %y %h:%m:%s"

formatter = logging.formatter(fmt, datefmt)

# add handler and formatter to logger

fh.setformatter(formatter)

logger.addhandler(fh)

# print log info

logger.debug('debug message')

logger.info('info message')

logger.warning('warning message')

logger.error('error message')

logger.critical('critical message')

filemode

format

datefmt

level

stream

%w,平日作為小數 [0 (星期日), 6]

%w,年度週數(星期一為一周的第一天)為小數 [00,53]

%x,本地的適當日期表示

%x,本地的適當時間表示

%y,沒有世紀的年份作為小數 [00,99]

%y,以世紀為小數的年份

%z,時區名稱(如果沒有時區,則不存在字元)

%%,字面意思%

[loggers]

keys=root,example01

[logger_root]

level=debug

handlers=hand01,hand02

[logger_example01]

handlers=hand01,hand02

qualname=example01

propagate=0

[handlers]

keys=hand01,hand02

[handler_hand01]

class=streamhandler

level=info

formatter=form01

args=(sys.stderr,)

[handler_hand02]

class=filehandler

level=debug

formatter=form02

args=('demo04.log', 'a')

[formatters]

keys=form01,form02

[formatter_form01]

format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

[formatter_form02]

format=%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s

log.py檔案

import logging

import logging.config

logging.config.fileconfig("logging.conf")

# create logger

logger_name = 'example01'

logger = logging.getlogger(logger_name)

logger.debug('debug message')

logger.info('info message')

logger.warning('warning message')

logger.error('error message')

logger.critical('critical message')

python3 logging日誌封裝

乙個完整的程式離不開日誌,無論是開發階段,還是測試階段,亦或程式執行階段,都可以通過日誌檢視程式的運 況,或是定位問題。下面是對 python3 的日誌庫 logging 進行了封裝,對於大部分的需求應該是能滿足的。程式結構 logger.py singleton.py demo.py log 20...

遞迴練習 shutil模組 logging模組

os模組 檢視乙個資料夾下的所有檔案,這個資料夾下面還有資料夾,不能用walk import os defshow file path name lst os.listdir path for name in name lst abs path os.path.join path,name if o...

python3之初識logging模組

第一步,建立乙個logger logger logging.getlogger log等級總開關設定,開關級別從低到高是debug,info,warning error,critical,低於設定級別的不被列印,高於的都可以列印logger.setlevel logging.debug 第二步,建立...