python模組之logging模組

2022-05-17 08:27:35 字數 3631 閱讀 3338

logging模組:

用於進行日誌處理工作

基本的幾種日誌資訊:

import

logging

logging.debug(

'debug messages

') #

排錯資訊

logging.info('

info messages

') #

正常互動資訊

logging.warning('

warning messages

') #

警告資訊

logging.error('

error messages

') #

錯誤資訊

logging.critical('

critical messages

') #

嚴重錯誤資訊

執行後控制台輸出:

warning:root:warning messages

error:root: error messages

critical:root:critical messages

這幾種資訊是有級別的,

預設debug和info級別的不輸出,日誌資訊的級別順序:critical > error > warning > info > debug。

兩種配置方式:

函式配置:

logging.basicconfig(level=logging.debug,

format='

%(asctime)s %(filename)s[line:%(lineno)d] %(levelname)s %(message)s',

datefmt='

%a, %d %b %y %h:%m:%s',

filename='

log.log',

filemode='w'

)logging.debug(

'debug messages

') #

排錯資訊

logging.info('

info messages

') #

正常互動資訊

logging.warning('

warning messages

') #

警告資訊

logging.error('

error messages

') #

錯誤資訊

logging.critical('

critical messages

') #

嚴重錯誤資訊

特點:

basicconfig: 功能比較簡單,能做的事情比較少

1,不能指定檔案的編碼方式

2,不能同時進行檔案的輸入和螢幕的輸出

物件配置:

logger = logging.getlogger()  #

建立乙個日誌操作物件

filehandler = logging.filehandler('

log2.log

', encoding='

utf-8

') #

建立乙個日誌檔案操作控制代碼

streamhandler = logging.streamhandler() #

建立乙個控制台操作控制代碼

#指定日誌的格式

formatter = logging.formatter('

%(asctime)s-%(name)s-[line:%(lineno)d] %(levelname)s %(message)s')

logger.setlevel(logging.debug)

#設定日誌等級

streamhandler.setlevel(logging.info) #

單獨設定螢幕的日誌等級 不能低於logger.setlevel(logging.debug)的級別

filehandler.setformatter(formatter) #

關聯格式

streamhandler.setformatter(formatter) #

關聯格式

logger.addhandler(filehandler) #

日誌操作物件關聯檔案

logger.addhandler(streamhandler) #

日誌操作物件關聯螢幕

logger.debug(

'debug messages')

logger.info(

'info messages')

logger.warning(

'warning messages')

logger.error(

'error messages')

logger.critical(

'critical messages

')

特點:

1,靈活,定製性強

2,程式解耦充分

配置引數:

logging.basicconfig()函式中可通過具體引數來更改logging模組預設行為,可用引數有:

filename:用指定的檔名建立filedhandler,這樣日誌會被儲存在指定的檔案中。

filemode:檔案開啟方式,在指定了filename時使用這個引數,預設值為「a」還可指定為「w」。

format:指定handler使用的日誌顯示格式。

datefmt:指定日期時間格式。

level:設定rootlogger(後邊會講解具體概念)的日誌級別

stream:用指定的stream建立streamhandler。可以指定輸出到sys.stderr,sys.stdout或者檔案(f=open(『test.log』,』w』)),預設為sys.stderr。若同時列出了filename和stream兩個引數,則stream引數會被忽略。

format引數中可能用到的格式化串:

%(name)s logger的名字

%(levelno)s 數字形式的日誌級別

%(levelname)s 文字形式的日誌級別

%(pathname)s 呼叫日誌輸出函式的模組的完整路徑名,可能沒有

%(filename)s 呼叫日誌輸出函式的模組的檔名

%(module)s 呼叫日誌輸出函式的模組名

%(funcname)s 呼叫日誌輸出函式的函式名

%(lineno)d 呼叫日誌輸出函式的語句所在的**行

%(created)f 當前時間,用unix標準的表示時間的浮 點數表示

%(relativecreated)d 輸出日誌資訊時的,自logger建立以 來的毫秒數

%(asctime)s 字串形式的當前時間。預設格式是 「2003-07-08 16:49:45,896」。逗號後面的是毫秒

%(thread)d 執行緒id。可能沒有

%(threadname)s 執行緒名。可能沒有

%(process)d 程序id。可能沒有

%(message)s使用者輸出的訊息

引數

configparser模組,logging模組

configparser模組 import configparser ret configparser.configparser ret a ret b ret c with open file w as f ret.write f 自動生成檔案 a 1 2 3 4 b 5 6 c 7 8 按照字典...

詳解Python中的日誌模組logging

許多應用程式中都會有日誌模組,用於記錄系統在執行過程中的一些關鍵資訊,以便於對系統的執行狀況進行跟蹤。在.net平台中,有非常著名的第三方開源日誌元件log4net,c 中,有人們熟悉的log4cpp,而在python中,我們不需要第三方的日誌元件,因為它已經為我們提供了簡單易用 且功能強大的日誌模...

day21 shutil模組和logging模組

一 shutil模組 copy2函式 複製檔案 copytree 拷貝整個目錄 rmtree 刪除整個目錄 move 移動檔案 eg shutil.copy d test testfile.txt d test testfilebak.txt 複製乙份檔案 shutil.move d test te...