python自动化测试脚本运行后,想要将日志保存到某个特定文件,使用python的logging模块实现

参考代码:

importloggingdefinitLogging(logFilename,e):

logging.basicConfig(

level=logging.INFO,

format='%(asctime)s-%(levelname)s-%(message)s',

datefmt= '%y-%m-%d %H:%M',

filename=logFilename,

filemode= 'a')

filehandler= logging.FileHandler(logFilename,encoding='utf-8')

logging.getLogger().addHandler(filehandler )

log=logging.exception(e)return log

1.日志级别使用场景:

在终端输出程序或脚本的使用方法:print

报告一个事件的发生(例如状态的修改):logging.info()或logging.debug()

发生了一个特定的警告性的事件:logging.warn()

发生了一个特定的错误性的事件:raise

发生了一个特定的错误性的事件,但是又不想因为此错误导致程序退出(例如程序是一个守护进程):logging.error(),logging.exception(),logging.critical()

2.logging.basicConfig()函数中可通过具体参数来更改logging模块默认行为,可用参数有:

level:设置日志级别

format:指定handler使用的日志显示格式

datefmt:指定日期时间格式,如果format参数中存在asctime,则需要指定时间格式

filename:用指定的文件名创建FiledHandler,这样日志会被存储在指定的文件中

filemode:文件打开方式,在指定了filename时使用这个参数,默认值为“a”还可指定为“w”

3.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用户输出的消息

4.logging模块的了解,必须知道:Logger,Handler,Formatter,Filter

(1)logger 提供了应用程序可以直接使用的接口

每个程序在输出信息之前都要获得一个Logger

Logger.addHandler(hdlr)、Logger.removeHandler(hdlr):增加或删除指定的handler

(2)handler 将(logger创建的)日志记录发送到合适的目的输出

logging.FileHandler用于向一个文件输出日志信息,不过FileHandler会帮你打开这个文件。它的构造函数是:

FileHandler(filename[,mode])filename是文件名,必须指定一个文件名;mode是文件的打开方式

(3)filter 提供了细度设备来决定输出哪条日志记录

(4)formatter 决定日志记录的最终输出格式

5.输出日志结果:

18-06-12 17:34-ERROR-string indices must be integers

Traceback (most recent call last):

File"C:/Users/xx/Documents/GitHub/python3/main/run_test.py", line 70, ingo_on_run

op_header.write_cookie()

File"C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 30, inwrite_cookie

cookie=requests.utils.dict_from_cookiejar(self.get_cookie())

File"C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 25, inget_cookie

url= self.get_response_url()+"&callback=jQuery21008240514814031887_1508666806688&_=1508666806689"File"C:\Users\xx\Documents\GitHub\python3\util\operation_header.py", line 18, inget_response_url

url= self.response['data']['url'][0]

TypeError: string indices must be integers

参考文档:

https://www.cnblogs.com/Xjng/p/8a481db3399827ecbdec888989f7c0d5.html

https://www.cnblogs.com/wenwei-blog/p/7196658.html

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com

特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有

python3 logging输出到文件_python3:logging模块 输出日志到文件相关推荐

  1. python从指定文件夹导入模块_python – 从特定文件夹导入模块

    我有一个名为Script的文件夹,里面有temp.py脚本.我的临时脚本从名为lib的子文件夹导入模块. Lib文件夹里面有空的__init__.py和我的parent_computer_test.p ...

  2. log日志:打印日志到控制台、文件、日志文件分区、打印错误日志到文件

    springboot默认会加载classpath:logback-spring.xml文件 如果需要自定义文件名称,在application.properties中配置logging.config 选 ...

  3. python3标准库书怎么样_Python3标准库:filecmp比较文件

    1. filecmp比较文件 filecmp模块提供了一些函数和一个类来比较文件系统上的文件和目录. 1.1 示例数据 使用下面代码创建一组测试文件. importosdef mkfile(filen ...

  4. python3输出不换行_python3不换行输出

    由于python的print()函数默认是以换行符结束的,所以在默认的情况下会自动换行.在Python有一个预定义的格式,如果你使用print(变量),那么它将自动转到下一行.那么如何可以不换行输出呢 ...

  5. python读取大文件内容_Python模块linecache处理大文件

    linecache模块简介 Python处理大文件需要用到Linecache模块. linecache模块的作用是将文件内容读取到内存中,进行缓存,而不是每次都要从硬盘中读取,这样效率提高很多,又省去 ...

  6. python重命名文件夹下所有文件_Python3.4.3重命名当前文件夹下的文件

    import os import os.path #指明被遍历的文件夹 rootdir = './' #三个参数:分别返回1.父目录 2.所有文件夹名字(不含路径) 3.所有文件名字 for pare ...

  7. python 删除指定后缀文件_python3 遍历删除特定后缀名文件的方法_天津SEO

    天津SEO U盘中毒了,U盘内的每个文件夹内都多了一个.lnk文件,处女座又犯了,实在不能忍,就写了个脚本把所有的.lnk文件删除了. 多级目录递归删除 import os n = 0 for roo ...

  8. 8.文件操作及模块包

    文件操作及模块包 文章目录 文件操作及模块包 1.文本文件和二进制文件 2.创建文件对象 open() 3.文本文件的写入 3.1基本的文件写入操作 3.2常用编码介绍 3.3.中文乱码问题 3.4 ...

  9. python逐行写入csv_python之模块csv之CSV文件的写入(按行写入)

    # -*- coding: utf-8 -*- #python 27 #xiaodeng #CSV文件的写入(按行写入) import csv #csv文件,是一种常用的文本格式,用以存储表格数据,很 ...

  10. 文件路径和模块路径、nodemon工具

    文件路径和模块路径: //在文件操作相对路径中,前面的 ./ 可以省略,但是 在模块标识路径中 ,前面的 ./ 不能省略.// ./-----表示相对于当前目录 /-------当前文件所属磁盘根目录 ...

最新文章

  1. 从 jQuery 到 VUE 技术栈
  2. C++类的Const数组的初始化
  3. ModuleNotFoundError: No module named 'oscar.app'
  4. python qq签到_Yii Framework 中文网每天签到 Python 脚本
  5. Android性能优化之内存篇
  6. mac的python怎么输入中文_无法在python IDE(Mac OS X)中输入unicode
  7. 简单循迹小车实验心得_简单循迹小车的制作
  8. 【新农合专题】新农合系统资料汇总贴(新增134个)
  9. 详解如何用爬虫工具批量采集阿里巴巴批发网商品数据
  10. 利用VCF文件构建系统发育树
  11. 惠普电脑怎么用access_惠普笔记本电脑怎么分区
  12. 数字图像处理及matlab实现第三版相关概念总结
  13. 第十一届蓝桥杯 ——数字三角形
  14. Poj 1655 【树的重心】
  15. python批量读取文件内容_Python从数据库读取大量数据批量写入文件的方法
  16. NSSCTF刷题wp——单表替换密码
  17. 什么品牌的护眼台灯比较好?护眼效果最好的台灯推荐
  18. springboot毕设项目教师绩效工资管理l1v8p(java+VUE+Mybatis+Maven+Mysql)
  19. ClearType修改win系统字体
  20. 修复 Elasticsearch 中损坏的索引

热门文章

  1. macOS下快速复制文件或文件夹路径
  2. 没有比这个更详细的Elasticsearch教程
  3. 手机总是耗电太快,怎么办?
  4. Elasticsearch浅尝搜索
  5. mx330属于什么档次的显卡
  6. 职业讨债人要失业了?人工智能就是这样让人乖乖还钱的…
  7. 三步必杀(P4231)
  8. 视频监控平台-GB28181-语音对讲功能
  9. html打开txt文件 乱码怎么解决,txt文件打开显示乱码怎么办?
  10. sRGB,RAW图像意义