1.默認情況下,logging將日志打印到屏幕,日志級別為WARNING,
日志級別大小關(guān)系為CRITICAL>ERROR>WARNING>INFO>DEBUG>BOTSET,當(dāng)然也可以自己定義日志級別。
2.通過logging.basicConfig函數(shù)對日志的輸出格式及方式做相關(guān)配置。
查看源碼,該函數(shù)下含以下幾個常用參數(shù)可以控制日志的輸出格式

logging.basicConfig函數(shù)各參數(shù):
filename:指定日志文件名
filemode:和file函數(shù)意義相同,指定日志文件的打開模式,'w'或'a'
format:指定輸出的格式和內(nèi)容,format可以輸出很多有用的信息,如上例所示
%(levelno)s:打印日志級別的數(shù)值
%(levelname)s:打印日志級別名稱
%(pathname)s:打印當(dāng)前執(zhí)行程序的路徑,其實就是sys.argc[0]
%(filename)s:打印當(dāng)前執(zhí)行程序名
%(funcName)s:打印日志的當(dāng)前函數(shù)
%(lineno)d:打印日志的當(dāng)前行數(shù)
%(asctime)s:打印日志的時間,默認格式是 “2003-07-08 16:49:45,896”。逗號后面的是毫秒
%(thread)d:打印線程ID
%(threadName)s:打印線程的名稱
%(process)d:打印進程ID
%(message)s:打印日志信息
datafmt:指定時間格式,同time.strftime()
level:設(shè)置日志級別,默認為logging.WARNING
stream:指定將日志的輸出流,可以指定輸出到sys.stderr,sys.stdout或者文件,默認輸出到sys.stderr,當(dāng)stream和filename同時指定時,stream被忽略。
3.將日志同時輸出到文件和屏幕

屏幕中打印信息和文件中的信息查看:

4.logging日志回滾

從上例和本例中可以看出,logging有個日志處理主對象,其他處理方式都是通過addHander添加進去的,logging的幾種handler方式如下:
logging.StreamHandler:日志輸出到流,可以是sys.stderr、sys.stdout或者文件
logging.FileHandler:日志輸出到文件
日志回滾方式,實際使用時用RotatingFileHandler和TimeRotatingFileHandler
logging.handlers.BaseRotatingHandler
logging.handlers.RotatingFileHandler
logging.handlers.TimedRotatingFileHandler
logging.handlers.SocketHandler: 遠程輸出日志到TCP/IP sockets
logging.handlers.DatagramHandler:??遠程輸出日志到UDP sockets
logging.handlers.SMTPHandler:??遠程輸出日志到郵件地址
logging.handlers.SysLogHandler: 日志輸出到syslog
logging.handlers.NTEventLogHandler: 遠程輸出日志到Windows NT/2000/XP的事件日志
logging.handlers.MemoryHandler: 日志輸出到內(nèi)存中的制定buffer
logging.handlers.HTTPHandler: 通過"GET"或"POST"遠程輸出到HTTP服務(wù)器
由于StreamHandler和FileHandler是常用的日志處理方式,所以直接包含在logging中,而其他方式則包含在logging.handler中。
logging簡單的一個實踐:
import logging # 引入日志模塊
from selenium import webdriver
# 日志文件保存在當(dāng)前目錄下的example.log中
logging_file = 'example.log'
logging.basicConfig(filename=logging_file,level=logging.DEBUG)
logging.debug('begin selenium')
driver = webdriver.Chrome()
logging.debug('creat chrome')
print(driver.capabilities['version'])
logging.debug('print chrome version')
查看日志文件:
