学习
实践
活动
专区
工具
TVP
写文章

【Python接口自动化】log日志的封装

# coding:utf-8

importlogging

importtime

importos

# log_path是存放日志的路径

cur_path = os.path.dirname(os.path.realpath(__file__))

log_path = os.path.join(os.path.dirname(cur_path),'logs')

#如果不存在这个logs文件夹,就自动创建一个

if notos.path.exists(log_path):os.mkdir(log_path)

classLog():

def__init__(self):

#文件的命名

self.logname = os.path.join(log_path,'%s.log'%time.strftime('%Y_%m_%d'))

self.logger = logging.getLogger()

self.logger.setLevel(logging.DEBUG)

#日志输出格式

self.formatter = logging.Formatter('[%(asctime)s] - %(filename)s] - %(levelname)s: %(message)s')

def__console(self,level,message):

#创建一个FileHandler,用于写到本地

fh = logging.FileHandler(self.logname,'a',encoding='utf-8')#这个是python3的

fh.setLevel(logging.DEBUG)

fh.setFormatter(self.formatter)

self.logger.addHandler(fh)

#创建一个StreamHandler,用于输出到控制台

ch = logging.StreamHandler()

ch.setLevel(logging.DEBUG)

ch.setFormatter(self.formatter)

self.logger.addHandler(ch)

#区分日志级别

iflevel =='info':

self.logger.info(message)

eliflevel =='debug':

self.logger.debug(message)

eliflevel =='warning':

self.logger.warning(message)

eliflevel =='error':

self.logger.error(message)

#避免日志输出重复问题

self.logger.removeHandler(ch)

self.logger.removeHandler(fh)

#关闭打开的文件

fh.close()

defdebug(self,message):

self.__console('debug',message)

definfo(self,message):

self.__console('info',message)

defwarning(self,message):

self.__console('warning',message)

deferror(self,message):

self.__console('error',message)

if__name__ =="__main__":

log = Log()

log.info("----------自动化测试开始----------")

log.info("登录成功...")

log.info('输入手势密码...')

log.warning("-----------自动化测试结束----------")

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20180824G0FXZ500?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

关注

腾讯云开发者公众号
10元无门槛代金券
洞察腾讯核心技术
剖析业界实践案例
腾讯云开发者公众号二维码

扫码关注腾讯云开发者

领取腾讯云代金券