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