装潢设计师培训班学费苏州seo外包
web/
2025/10/3 7:08:02/
文章来源:
装潢设计师培训班学费,苏州seo外包,青岛外包加工网,网页界面设计案例赏析前面第1版写好后#xff0c;很凌乱#xff0c;主要的问题在于#xff0c;Python不支持方法重载#xff0c;想要灵活创建对象#xff0c;当时的变通办法是#xff0c;先链式地有选择地设置属性(方法重载的本质就是有选择地设置属性)#xff0c;再做实例化#xff0c;这样…前面第1版写好后很凌乱主要的问题在于Python不支持方法重载想要灵活创建对象当时的变通办法是先链式地有选择地设置属性(方法重载的本质就是有选择地设置属性)再做实例化这样导致后面创建对象的时候就很凌乱。然后才知道Python可以缺省参数变相做到方法重载代码Python3# -*- coding: utf-8 -*---封装了logging模块舍弃了繁琐了设置仅保留关键设置美化了输出格式import sys,random,timeimport logging as lgdef getRandomInt(digits):args:int digitsreturns:stringreturn random.randint(1,10**digits-1).__str__().zfill(digits)def getNowDate(fmt):args:string fmtreturns:stringreturn time.strftime(fmt,time.localtime()).__str__()def getOriginPath():returns:stringreturn sys.argv[0]class XLogger():-日志记录器 -封装了logging模块舍弃了繁琐了设置仅保留关键设置美化了输出格式-大概用法-创建XLogger添加XHandler-对于XLogger-允许设置日志级别、记录器名称、父子记录器的传播功能-对于XStreamHandler 控制台输出-不允许设置-对于XFileHandler 文件输出-允许设置文件路径文件写入方式覆盖/追加levelMap {DEBUG:lg.DEBUG,INFO:lg.INFO,WARN:lg.WARNING,ERROR:lg.ERROR,CRITICAL:lg.CRITICAL}def __init__(self,nameAUTO,levelINFO,propagateFalse):args:String name 记录器名称 (名称可体现记录器的父子关系)String level 日志级别 DEBUG/INFO/WARN/ERROR/CRITICALString propagate 是否开启父子日志记录器的向上传播功能- 若开启子记录器会获得父记录器的全部Handler- 需注意重复添加Handler以免产生重复日志self.level levelself.propagate propagateif name.upper() AUTO :self.name getRandomInt(12)else:self.name nameself.logger lg.getLogger(self.name)self.logger.setLevel(XLogger.levelMap.get(self.level))self.logger.propagate self.propagateprint(XLogger named: self.name)def addHandler(self,xHandler):self.logger.addHandler(xHandler.handler)if isinstance(xHandler,XLogger.XFileHandler):print(XLogger XFileHandler file: xHandler.file)return selfdef debug(self,layer,message):self.logger.debug(DBUG |·· * layer message)def info(self,layer,message):self.logger.info(INFO |·· * layer message)def warning(self,layer,message):self.logger.warning(WARN |·· * layer message)def error(self,layer,message):self.logger.error(ERRO |·· * layer message)def critical(self,layer,message):self.logger.critical(CRIT |·· * layer message)class XHandler:def __init__(self):self.handler Noneself.formatter lg.Formatter([%(name)s] %(asctime)s %(message)s,%y/%m/%d %H:%M:%S)class XFileHandler(XHandler):def __init__(self,fileAUTO,modelw):args:String file 文件路径 若设置为AUTO 则日志文件路径为起源执行文件.时间随机数XLOGString model 文件写入模式 w覆盖 a追加XLogger.XHandler.__init__(self)self.model modelif file.upper() AUTO :self.file getOriginPath().getNowDate(%Y%m%d%H%M%S)getRandomInt(4)XLOGelse:self.file fileself.handler lg.FileHandler(self.file,modeself.model.lower(),encodingUTF-8,delayFalse)self.handler.setFormatter(self.formatter)class XStreamHandler(XHandler):def __init__(self):XLogger.XHandler.__init__(self)self.handler lg.StreamHandler()self.handler.setFormatter(self.formatter)测试dir_D:\\Users\\ex-hexuwen001\\Desktop\\Work\M1-APPS\\using__apps_data\\eclipse_workspace\\myPython\\srcfile1dir_\\1.xlogfile2dir_\\2.xloglogger1 XLogger(nameaaaa, levelDEBUG, propagateTrue)\.addHandler(XLogger.XFileHandler(filefile1, modelw))\.addHandler(XLogger.XStreamHandler())logger1.debug(0,牛逼局域网)logger1.info(1,广东省)logger1.warning(2,肇庆市)logger1.error(2,高要市)logger1.critical(3,牛逼镇)logger2 XLogger(nameaaaa.bbbb, levelDEBUG, propagateTrue)\.addHandler(XLogger.XFileHandler(filefile2, modelw))\.addHandler(XLogger.XStreamHandler())logger2.debug(0,牛逼局域网)logger2.info(1,广东省)logger2.warning(2,肇庆市)logger2.error(2,高要市)logger2.critical(3,牛逼镇)输出[aaaa] 18/01/12 14:55:04 DBUG 牛逼局域网[aaaa] 18/01/12 14:55:04 INFO |··广东省[aaaa] 18/01/12 14:55:04 WARN |··|··肇庆市[aaaa] 18/01/12 14:55:04 ERRO |··|··高要市[aaaa] 18/01/12 14:55:04 CRIT |··|··|··牛逼镇[aaaa.bbbb] 18/01/12 14:55:04 DBUG 牛逼局域网[aaaa.bbbb] 18/01/12 14:55:04 DBUG 牛逼局域网[aaaa.bbbb] 18/01/12 14:55:04 INFO |··广东省[aaaa.bbbb] 18/01/12 14:55:04 INFO |··广东省[aaaa.bbbb] 18/01/12 14:55:04 WARN |··|··肇庆市[aaaa.bbbb] 18/01/12 14:55:04 WARN |··|··肇庆市[aaaa.bbbb] 18/01/12 14:55:04 ERRO |··|··高要市[aaaa.bbbb] 18/01/12 14:55:04 ERRO |··|··高要市[aaaa.bbbb] 18/01/12 14:55:04 CRIT |··|··|··牛逼镇[aaaa.bbbb] 18/01/12 14:55:04 CRIT |··|··|··牛逼镇
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/86085.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!