1.默认情况下,logging将日志打印到屏幕,日志级别为WARNING,
日志级别大小关系为CRITICAL>ERROR>WARNING>INFO>DEBUG>BOTSET,当然也可以自己定义日志级别。
2.通过logging.basicConfig函数对日志的输出格式及方式做相关配置。
查看源码,该函数下含以下几个常用参数可以控制日志的输出格式
logging.basicConfig函数各参数:
filename:指定日志文件名
filemode:和file函数意义相同,指定日志文件的打开模式,'w'或'a'
format:指定输出的格式和内容,format可以输出很多有用的信息,如上例所示
%(levelno)s:打印日志级别的数值
%(levelname)s:打印日志级别名称
%(pathname)s:打印当前执行程序的路径,其实就是sys.argc[0]
%(filename)s:打印当前执行程序名
%(funcName)s:打印日志的当前函数
%(lineno)d:打印日志的当前行数
%(asctime)s:打印日志的时间,默认格式是 “2003-07-08 16:49:45,896”。逗号后面的是毫秒
%(thread)d:打印线程ID
%(threadName)s:打印线程的名称
%(process)d:打印进程ID
%(message)s:打印日志信息
datafmt:指定时间格式,同time.strftime()
level:设置日志级别,默认为logging.WARNING
stream:指定将日志的输出流,可以指定输出到sys.stderr,sys.stdout或者文件,默认输出到sys.stderr,当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: 日志输出到内存中的制定buffer
logging.handlers.HTTPHandler: 通过"GET"或"POST"远程输出到HTTP服务器
由于StreamHandler和FileHandler是常用的日志处理方式,所以直接包含在logging中,而其他方式则包含在logging.handler中。
logging简单的一个实践:
import logging # 引入日志模块
from selenium import webdriver
# 日志文件保存在当前目录下的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')
查看日志文件: