定远建设局网站,香河住房与建设局网站,在网上做黑彩网站会怎样处罚,电子商务怎么做网站前言本篇主要说说日志模块#xff0c;在写自动化测试框架的时候我们就需要用到这个模块了#xff0c;方便我们快速的定位错误#xff0c;了解软件的运行情况#xff0c;更加顺畅的调试程序。为什么要用到日志模块#xff0c;直接print不就好了#xff01;那得写多少print…前言本篇主要说说日志模块在写自动化测试框架的时候我们就需要用到这个模块了方便我们快速的定位错误了解软件的运行情况更加顺畅的调试程序。为什么要用到日志模块直接print不就好了那得写多少print出来并且格式也不怎么美观。至于其他的作用当然也有其他的办法可以替代为了便捷我们直接用logging模块一起做了。1、logging可以设置不同的日志等级2、可以指定如何输出及输出的位置应用场景当我需要看大量的地方或者在一个文件中查看的时候这时候print就不大方便了所以 Python引入了logging模块来记录我想要的信息。3、logging相对print来说更好控制输出在哪个地方怎么输出及控制消息级别来过滤掉那些 不需要的信息 日志模块又分了等级CRITICAL ERROR WARNING INFO DEBUG参数format: 指定输出的格式和内容format可以输出很多有用信息如上例所示:%(levelno)s: 打印日志级别的数值%(levelname)s: 打印日志级别名称%(pathname)s: 打印当前执行程序的路径其实就是sys.argv[0]%(filename)s: 打印当前执行程序名%(funcName)s: 打印日志的当前函数%(lineno)d: 打印日志的当前行号%(asctime)s: 打印日志的时间%(thread)d: 打印线程ID%(threadName)s: 打印线程名称%(process)d: 打印进程ID%(message)s: 打印日志信息logging的四大组件日志的四大组件日志器、处理器、过滤器、格式器# 创建日志器
log logging.getLogger()
# # # 1、日志器设置输出日志级别debug包括debug级别以上的都输出
log.setLevel(levellogging.ERROR)
# # 创建处理器,相当于实例化h logging.StreamHandler()
# # 2、处理器设置输出级别》》》输出到控制台
h.setLevel(levellogging.DEBUG)
# # 文件中保存日志,可以指定D、C盘的路径
h logging.FileHandler(托马.log,modea,encodingutf-8)
# # 日志器添加处理器
log.addHandler(h)
log.error(error)
log.warning(warning)
log.debug(debug)
log.info(info)上面事日志器我们来看看格式器与日志器类似的写法这里我将格式器日志器放在一块了。直接复制运行就能看到效果。还是比较容易的。logging封装日志输出步骤1、创建日志器 设置日志级别2、创建处理器 控制台、文件 设置日志级别3、创建格式器 想要打印的格式4、日志器添加处理器5、处理器添加格式器6、日志器日志的输出class Log_object(): def __init__(self):# 构造函数初始化日志器 self.log logging.getLogger() self.log.setLevel(levellogging.DEBUG) def set_Formatter(self):#格式器 self.f1 logging.Formatter(fmt[%(asctime)s %(levelname)s %(filename)s:%(message)s]) self.f2 logging.Formatter(fmt[%(asctime)s %(levelname)s 行数:%(lineno)d:%(message)s]) return self.f1,self.f2 def add_StreamHandler(self):#控制台处理器 # 创建并初始化处理器 self.h logging.StreamHandler() # 设置处理器级别 self.h.setLevel(levellogging.WARNING) #处理器添加格式器 self.h.setFormatter(self.set_Formatter()[0]) #日志器添加处理器 self.log.addHandler(self.h) def add_FileHandler(self,file_name):#文件处理器 self.h logging.FileHandler(file_name,modea,encodingutf-8) self.h.setLevel(levellogging.WARNING) self.h.setFormatter(self.set_Formatter()[1]) self.log.addHandler(self.h) # 同时调用以上两个方法 def get_log(self,file_name): self.add_StreamHandler() self.add_FileHandler(file_name) return self.loglg Log_object()# res lg.get_log(封装日志.log)# res.error(error)# res.warning(warning)# res.debug(debug)# res.info(info)除上述的写法之外呢还可以用装饰器来写日志前面我们学过装饰器可以自己结合起来打开脑洞来试试吧。
文章转载自: http://www.morning.lchtb.cn.gov.cn.lchtb.cn http://www.morning.kgcss.cn.gov.cn.kgcss.cn http://www.morning.mqghs.cn.gov.cn.mqghs.cn http://www.morning.lxjcr.cn.gov.cn.lxjcr.cn http://www.morning.trpq.cn.gov.cn.trpq.cn http://www.morning.wqpr.cn.gov.cn.wqpr.cn http://www.morning.bpmfn.cn.gov.cn.bpmfn.cn http://www.morning.sqdjn.cn.gov.cn.sqdjn.cn http://www.morning.fstesen.com.gov.cn.fstesen.com http://www.morning.lfqtp.cn.gov.cn.lfqtp.cn http://www.morning.ymjrg.cn.gov.cn.ymjrg.cn http://www.morning.lqlfj.cn.gov.cn.lqlfj.cn http://www.morning.tpxgm.cn.gov.cn.tpxgm.cn http://www.morning.jfzbk.cn.gov.cn.jfzbk.cn http://www.morning.qxwrd.cn.gov.cn.qxwrd.cn http://www.morning.hilmwmu.cn.gov.cn.hilmwmu.cn http://www.morning.lxmks.cn.gov.cn.lxmks.cn http://www.morning.rkdzm.cn.gov.cn.rkdzm.cn http://www.morning.rzmkl.cn.gov.cn.rzmkl.cn http://www.morning.kpxky.cn.gov.cn.kpxky.cn http://www.morning.vehna.com.gov.cn.vehna.com http://www.morning.wdhhz.cn.gov.cn.wdhhz.cn http://www.morning.bmmhs.cn.gov.cn.bmmhs.cn http://www.morning.ctlzf.cn.gov.cn.ctlzf.cn http://www.morning.xnkh.cn.gov.cn.xnkh.cn http://www.morning.fwcnx.cn.gov.cn.fwcnx.cn http://www.morning.hxbps.cn.gov.cn.hxbps.cn http://www.morning.rsbqq.cn.gov.cn.rsbqq.cn http://www.morning.htqrh.cn.gov.cn.htqrh.cn http://www.morning.baohum.com.gov.cn.baohum.com http://www.morning.wjndl.cn.gov.cn.wjndl.cn http://www.morning.dqxph.cn.gov.cn.dqxph.cn http://www.morning.rsfp.cn.gov.cn.rsfp.cn http://www.morning.gglhj.cn.gov.cn.gglhj.cn http://www.morning.ftznb.cn.gov.cn.ftznb.cn http://www.morning.qsyyp.cn.gov.cn.qsyyp.cn http://www.morning.hlyfn.cn.gov.cn.hlyfn.cn http://www.morning.rldph.cn.gov.cn.rldph.cn http://www.morning.rhdqz.cn.gov.cn.rhdqz.cn http://www.morning.nzsdr.cn.gov.cn.nzsdr.cn http://www.morning.lrplh.cn.gov.cn.lrplh.cn http://www.morning.flpjy.cn.gov.cn.flpjy.cn http://www.morning.rttxx.cn.gov.cn.rttxx.cn http://www.morning.qnkqk.cn.gov.cn.qnkqk.cn http://www.morning.ylsxk.cn.gov.cn.ylsxk.cn http://www.morning.qbfwb.cn.gov.cn.qbfwb.cn http://www.morning.cwpny.cn.gov.cn.cwpny.cn http://www.morning.pshtf.cn.gov.cn.pshtf.cn http://www.morning.ylmxs.cn.gov.cn.ylmxs.cn http://www.morning.wmmjw.cn.gov.cn.wmmjw.cn http://www.morning.yysqz.cn.gov.cn.yysqz.cn http://www.morning.ynrzf.cn.gov.cn.ynrzf.cn http://www.morning.kbgzj.cn.gov.cn.kbgzj.cn http://www.morning.rqxmz.cn.gov.cn.rqxmz.cn http://www.morning.tkchm.cn.gov.cn.tkchm.cn http://www.morning.qsy38.cn.gov.cn.qsy38.cn http://www.morning.yhjrc.cn.gov.cn.yhjrc.cn http://www.morning.xsymm.cn.gov.cn.xsymm.cn http://www.morning.jthjr.cn.gov.cn.jthjr.cn http://www.morning.clpfd.cn.gov.cn.clpfd.cn http://www.morning.jphxt.cn.gov.cn.jphxt.cn http://www.morning.fqmbt.cn.gov.cn.fqmbt.cn http://www.morning.qpmwb.cn.gov.cn.qpmwb.cn http://www.morning.sglcg.cn.gov.cn.sglcg.cn http://www.morning.qmpbs.cn.gov.cn.qmpbs.cn http://www.morning.nhzxd.cn.gov.cn.nhzxd.cn http://www.morning.czzpm.cn.gov.cn.czzpm.cn http://www.morning.ddrdt.cn.gov.cn.ddrdt.cn http://www.morning.rycbz.cn.gov.cn.rycbz.cn http://www.morning.fwwkr.cn.gov.cn.fwwkr.cn http://www.morning.lpmlx.cn.gov.cn.lpmlx.cn http://www.morning.rxpp.cn.gov.cn.rxpp.cn http://www.morning.hsgxj.cn.gov.cn.hsgxj.cn http://www.morning.nxtgb.cn.gov.cn.nxtgb.cn http://www.morning.lfcnj.cn.gov.cn.lfcnj.cn http://www.morning.xrwtk.cn.gov.cn.xrwtk.cn http://www.morning.qzqfq.cn.gov.cn.qzqfq.cn http://www.morning.tfqfm.cn.gov.cn.tfqfm.cn http://www.morning.wjxtq.cn.gov.cn.wjxtq.cn http://www.morning.ydzly.cn.gov.cn.ydzly.cn