Python的logging模块提供了通用的日志系统,这个模块提供不一样的日志级别,并能够采用不一样的方式记录日志,好比文件,HTTP GET/POST,SMTP,Socket等,甚至能够本身实现方式记录日志。html
logging模块包括logger,Handler,Filter,Formatter四个部分。web
Logger 记录器,用于设置日志采集。浏览器
Handler 处理器,将日志记录发送至合适的路径。app
Filter 过滤器,提供了更好的粒度控制,它能够决定输出哪些日志记录。函数
Formatter 格式化器,指明了最终输出中日志的格式。ui
日志格式:spa
日志格式化是为了提升日志的可阅读性,好比:时间+模块+行数+日志具体信息 的内容格式。若是日志信息杂乱无章的所有输出来,这样也不利于定位问题。以下所示就是日志格式化输出,很是便于阅读查看。线程
2019-09-10 11:18:46,531 - test_suit01_denglu.py[line20] - INFO - Log 2019-09-10 11:18:49,360 - web_func.py[line34] - INFO - 启动浏览器 2019-09-10 11:18:52,566 - web_func.py[line114] - INFO - 等待时长: 10S 2019-09-10 11:18:52,567 - web_func.py[line46] - INFO - 打开地址: http://fwspre.cnzhonglunnet.com/ui/login.html#/ 2019-09-10 11:18:52,633 - web_func.py[line67] - INFO - 点击元素: ('xpath', "//div[@id='root']/div/div[2]/form/div/div/div/div/div/div/div/div[2]") 2019-09-10 11:18:53,276 - web_func.py[line77] - INFO - 在('xpath', ".//*[@id='serverid']/span/input")位置输入文本:900005 2019-09-10 11:18:54,370 - web_func.py[line77] - INFO - 在('xpath', ".//*[@id='username']/span/input")位置输入文本:1001 2019-09-10 11:18:54,479 - web_func.py[line77] - INFO - 在('xpath', ".//*[@id='password2']/span/input")位置输入文本:111111 2019-09-10 11:18:54,554 - web_func.py[line67] - INFO - 点击元素: ('xpath', "//button[@type='submit']") 2019-09-10 11:18:58,666 - web_func.py[line84] - INFO - 退出浏览器
使用Formatter对象设置日志信息最后的规则、结构和内容,默认的时间格式为%Y-%m-%d %H:%M:%S。日志
格式 描述 %(levelno)s 打印日志级别的数值 %(levelname)s 打印日志级别名称 %(pathname)s 打印当前执行程序的路径 %(filename)s 打印当前执行程序名称 %(funcName)s 打印日志的当前函数 %(lineno)d 打印日志的当前行号 %(asctime)s 打印日志的时间 %(thread)d 打印线程id %(threadName)s 打印线程名称 %(process)d 打印进程ID %(message)s 打印日志信息
使用方法:code
formatter = logging.Formatter('%(asctime)s - %(filename)s[line%(lineno)d] - %(levelname)s - %(message)s')
输出结果便是上面格式的日志。