自动化框架--log日志封装

 

一: 封装log模块, 在自动化测试中日志输出,在配置文件中配置需输出的位置 ,  1为输出, 0不输出。

1,console_output_on = 1 输出到控制台
2,file_output_on =1  输出到txt文件中
configparser 模块可以从配置文件中获取数据

Log.py   

 1 import logging
 2 import sys
 3 import configparser
 4 
 5 class Log:
 6     def __init__(self):
 7         pass
 8 
 9     def __new__(cls):
10         if  not hasattr(cls,'instance'):
11             cls._instance = super(Log, cls).__new__(cls)
12             conf = configparser.ConfigParser()
13             conf.read('log_config.ini',encoding='utf-8')
14             cls._instance.level = conf.get('logging','level')
15             cls._instance.name = conf.get('logging', 'logger_name')
16             cls._instance.path = conf.get('logging', 'file_path')
17             cls._instance.formatter = conf.get('logging', 'formatter')
18             cls._instance.format = cls._instance.formatter.replace('|', '%')
19             cls._instance.console_output_on = conf.getint('logging', 'console_output_on')
20             cls._instance.file_output_on = conf.getint('logging', 'file_output_on')
21             cls._instance.logger =logging.getLogger('test')
22             cls._instance.log()
23         return cls._instance
24 
25 
26     def get_log(self):
27         return self.logger
28 
29 
30     def log(self):
31         if self.console_output_on == 1:
32             self.logger.setLevel(self.level)
33             # 设置log.txt路径
34             #设置控制台输出日志
35             sh = logging.StreamHandler(sys.stderr)
36             # 设置格式
37             formatter = logging.Formatter(self.format)
38             sh.setFormatter(formatter)
39             self.logger.addHandler(sh)
40 
41         if  self.file_output_on==1:
42             self.logger.setLevel(self.level)
43             # 设置log.txt路径
44             # 设置文件输入日志地址
45             #最多备份5个日志文件,每个日志文件最大10M,这个Handler类似于上面的FileHandler,但是它可以管理文件大小。
46             # 当文件达到一定大小之后,它会自动将当前日志文件改名,然后创建 一个新的同名日志文件继续输出
47             #fh = logging.RotatingFileHandler(self.path,maxBytes=10*1024*1024,backupCount=5)
48             fh = logging.FileHandler(self.path)
49             # 设置格式
50             formatter = logging.Formatter(self.format)
51             fh.setFormatter(formatter)
52             self.logger.addHandler(fh)
53             return self.logger
54 
55 log = Log().get_log()
View Code

二: 配置文件设置 

 1 [logging]
 2 level=DEBUG
 3 logger_name=test
 4 file_path=H:\pycharm\untitled2\python_study\log\log.txt
 5 formatter=[|(asctime)s]:|(filename)s  [line:|(lineno)d] |(levelname)s : |(message)s |(funcName)s
 6 console_output_on=1
 7 file_output_on=1
 8 
 9 [level]
10 日志等级: debug, info,warning,error,critical
View Code

三: 测试文件

 1 from log.Log import *
 2 import codecs
 3 log.info('this is testing')
 4 
 5 def fun(x,y):
 6     """随意测试"""
 7     return x/y
 8 
 9 try:
10     fun(2,0) >0
11 except Exception as e:
12     log.error('分母不能为0 {}'.format(e))
View Code

四:日志输出 log.txt

五: 目录

 

转载于:https://www.cnblogs.com/paulXiong/p/7294392.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值