当前位置: 首页 > news >正文

江苏城乡建设教育网站手机wap网站免费建站

江苏城乡建设教育网站,手机wap网站免费建站,wordpress横幅图像,网站服务器租用需要注意的点文章目录 开发组日志记录SPEC_v0.1.0目的设计逻辑1. User日志记录器1.1 记录器标签内容介绍1.2 程序打印User日志规则 2. Dev日志记录器2.1 记录器标签内容介绍2.2 程序打印Dev日志规则 3.代码说明3.1 代码详情3.2 使用说明 更新记录 时间版本内容修订者备注2024/08/150.1.0创… 文章目录 开发组日志记录SPEC_v0.1.0目的设计逻辑1. User日志记录器1.1 记录器标签内容介绍1.2 程序打印User日志规则 2. Dev日志记录器2.1 记录器标签内容介绍2.2 程序打印Dev日志规则 3.代码说明3.1 代码详情3.2 使用说明 更新记录 时间版本内容修订者备注2024/08/150.1.0创建henry.xu 开发组日志记录SPEC_v0.1.0 目的 区分用户日志和开发人员日志 帮助开发人员快速定位 设计逻辑 重新封装logging模块在基本不改变代码的情况下替换掉之前使用的log日志系统定义两个日志记录器分别对应User 和 Dev提供参数dev区分两个日志记录器devTrue代表Dev日志记录器devFalse代表User日志记录器为了方便开发人员开发调试提供参数dev_log_enabled为True的时候控制台会打印属于 Dev 记录器的日志信息反之则不打印 1. User日志记录器 高于或等于设置的日志事件等级的日志控制台和log文件都会记录 1.1 记录器标签内容介绍 User 代表给用户看的日志内容D 代表该日志等级为debug2024-08-12 18:57:44 代表打印日志的时间auto_logger 代表当前模块名称121代表代码在当前模块所在行数This is a debug message 代表用户要看到的信息 [User D 2024-08-12 18:57:44 auto_logger:121] This is a debug message1.2 程序打印User日志规则 按照需求分析表步骤编号打印 日志内容格式规则 Step按照项目需求分析表中的步骤编号填写步骤内容按照项目需求分析表中的需求描述或功能介绍填写;信息反馈按照项目需求分析表中的预期效果填写;测试结果执行成功为PASS, 反之则为FAIL; #例子#代码 logger.info(Step: 1-1-1步骤内容: 设置UAC:搜索UAC-选择Change User Account Control settings打开UAC设置界面-设置UAC为Never notify-点击ok完成信息反馈: 成功设置UAC为Never notify测试结果: PASS)# 实际效果 [User I 2024-08-15 10:54:59 auto_logger:130] Step: 1-1-1步骤内容: 设置UAC:搜索UAC-选择Change User Account Control settings打开UAC设置界面-设置UAC为Never notify-点击ok完成信息反馈: 成功设置UAC为Never notify测试结果: PASS2. Dev日志记录器 2.1 记录器标签内容介绍 Dev代表这是给开发/测试/需求人员的可以设置是否需要在控制台上打印其他内容同User日志记录器 [Dev I 2024-08-12 19:00:26 auto_logger:122] This is an info message2.2 程序打印Dev日志规则 要求程序执行每个方法前需要打印STA: 方法名执行完方法以后打印END:方法名 # 例子 # 利用装饰器实现import timedef log_execution(func):def wrapper(*args, **kwargs):logger.info(fSTA: {func.__qualname__}, devTrue)result func(*args, **kwargs)logger.info(fEND: {func.__qualname__}, devTrue)return resultreturn wrapperclass MyClass:log_executiondef my_method_1(self):time.sleep(1)logger.info(正在执行 my_method_1)log_executiondef my_method_2(self, x):time.sleep(2)logger.info(f正在执行 my_method_2参数: {x})# 示例用法 obj MyClass() obj.my_method_1() obj.my_method_2(5)# log展示[Dev I 2024-08-15 14:07:41 auto_logger:142] STA: MyClass.my_method_1 [User I 2024-08-15 14:07:42 auto_logger:154] 正在执行 my_method_1 [Dev I 2024-08-15 14:07:42 auto_logger:144] END: MyClass.my_method_1 [Dev I 2024-08-15 14:07:42 auto_logger:142] STA: MyClass.my_method_2 [User I 2024-08-15 14:07:44 auto_logger:159] 正在执行 my_method_2参数: 5 [Dev I 2024-08-15 14:07:44 auto_logger:144] END: MyClass.my_method_23.代码说明 3.1 代码详情 import logging import osimport colorlogCRITICAL 50 FATAL CRITICAL ERROR 40 WARNING 30 WARN WARNING INFO 20 DEBUG 10 NOTSET 0class LoggerManager:def __init__(self, log_filelog.txt):self.file_handler_formatter [%(name)s %(levelname)1.1s %(asctime)s %(module)s:%(lineno)d] %(message)sself.console_handler_formatter %(log_color)s[%(name)s %(levelname)1.1s %(asctime)s %(module)s:%(lineno)d] %(log_color)s%(message)sself.color_formatter colorlog.ColoredFormatter(self.console_handler_formatter,datefmt%Y-%m-%d %H:%M:%S,log_colors{DEBUG: cyan,INFO: green,WARNING: yellow,ERROR: red,CRITICAL: bold_red})# 设置日志文件路径self.log_file os.path.join(os.getcwd(), log_file)# 控制台处理器可选self._dev_log_enabled Falseself.console_handler Noneself.user_logger self._create_user_logger()self.dev_logger self._create_dev_logger()def logfile(self, filename, modea, encodingNone, delayFalse, errorsNone):# 添加文件处理器file_handler logging.FileHandler(filename, modemode, encodingencoding, delaydelay, errorserrors)file_handler.setLevel(logging.DEBUG)formatter logging.Formatter(self.file_handler_formatter, datefmt%Y-%m-%d %H:%M:%S)file_handler.setFormatter(formatter)# 添加文件处理器self.user_logger.addHandler(file_handler)self.dev_logger.addHandler(file_handler)def _create_user_logger(self):logger_ logging.getLogger(User)logger_.setLevel(logging.DEBUG)# 控制台处理器console_handler colorlog.StreamHandler()console_handler.setLevel(logging.DEBUG)console_handler.setFormatter(self.color_formatter)logger_.addHandler(console_handler)return logger_staticmethoddef _create_dev_logger():logger_ logging.getLogger(Dev )logger_.setLevel(logging.DEBUG)return logger_propertydef dev_log_enabled(self):控制Dev记录器的控制台处理器的启用和禁用return self._dev_log_enableddev_log_enabled.setterdef dev_log_enabled(self, value):启用或禁用控制台处理器if value and not self._dev_log_enabled:# 如果请求启用并且当前未启用则添加控制台处理器if self.console_handler is None:self.console_handler colorlog.StreamHandler()self.console_handler.setLevel(logging.DEBUG)self.console_handler.setFormatter(self.color_formatter)self.dev_logger.addHandler(self.console_handler)elif not value and self._dev_log_enabled:# 如果请求禁用并且当前已启用则移除控制台处理器self.dev_logger.removeHandler(self.console_handler)self._dev_log_enabled valuedef set_log_level(self, level):设置 User 和 Dev 记录器的日志级别self.user_logger.setLevel(level)self.dev_logger.setLevel(level)for handler in self.user_logger.handlers:handler.setLevel(level)for handler in self.dev_logger.handlers:handler.setLevel(level)def debug(self, message, devFalse):logger_ self.dev_logger if dev else self.user_loggerlogger_.debug(message, stacklevel2)def info(self, message, devFalse):logger_ self.dev_logger if dev else self.user_loggerlogger_.info(message, stacklevel2)def warning(self, message, devFalse):logger_ self.dev_logger if dev else self.user_loggerlogger_.warning(message, stacklevel2)def error(self, message, devFalse):logger_ self.dev_logger if dev else self.user_loggerlogger_.error(message, stacklevel2)def critical(self, message, devFalse):logger_ self.dev_logger if dev else self.user_loggerlogger_.critical(message, stacklevel2)logger LoggerManager()3.2 使用说明 以下是 logging 模块中记录器、格式器、处理器、筛选器作用介绍 组件主要作用Logger- 日志记录器提供记录日志的接口并将日志消息传递给 HandlerHandler-处理器将日志消息传递到指定的目标位置如文件、控制台、网络等Formatter-格式器定义日志消息的输出格式包括时间戳、日志级别、消息内容等Filter-筛选器控制哪些日志消息应该被记录或忽略提供细粒度的日志控制 # 日志模块# 实例化 logger LoggerManager() # 为记录器添加文件处理器不添加则不生成日志文件 logger.logfile(filename1.txt) # 设置log_level logger.set_log_level(levelINFO)# 启用 Dev 记录器的控制台处理器 # 为True的时候控制台会打印属于 Dev 记录器的日志信息反之则不打印 logger.dev_log_enabled True# dev参数默认为False # True表示该日志属于 Dev 日志记录器反之表示该日志属于 User 记录器 # 表示这条消息在logger.dev_log_enabled设置为False的时候不会打印在系统终端 logger.info(This is an info message, devTrue)logger.debug(This is a debug message) logger.info(This is an info message) logger.warning(This is a warning message) logger.error(This is an error message) logger.critical(This is a critical message)
http://www.hkea.cn/news/14275083/

相关文章:

  • 网站有哪些布局杭州做网站的企业
  • 网站的会员功能网站优化培训如何优化
  • 长沙企业网站建设报价衡水百度seo
  • 提供免费网站建设中国建设建筑教育网站
  • 安徽网站建设cnfgwordpress边栏个性化
  • 天津做网站优化的公司wordpress加速
  • 货代网站制作博罗网站建设公司
  • 完整的app网站开发优质国外网站
  • 本地网站有什么可以做敦化市住房和城乡建设局网站
  • 模板网站音响案例html编辑器软件
  • 合肥网站建设技术长沙网约车驾驶员资格证网上报名
  • 南宁广告公司网站建设网页设计期末作业代码
  • 做58网站每天可以发几条千库网下载
  • 海珠网站建设哪家好网站建设团队扬州
  • 公司做网站有什么好处福建省住房和城乡建设厅门户网站
  • 营销型网站建设要求app软件开发软件
  • 商城网站建设特点有哪些网站开发工程师 课程大纲
  • 营销型网站建设tfx88重庆产品网站推广
  • 何做好网站建设销售建筑模板生产设备
  • 最便宜的货源网站大全wordpress页面属性排序
  • 免费网站推广的方法临桂建设局安全股网站
  • 宜昌手机网站制作海南最新消息
  • dw做网站基础ssc网站开发
  • 虚拟网站免费注册html网页设计思路
  • 网站设置反爬虫的常用方法有哪些网站免费下载安装大全手机版
  • 做网站怎么添加背景图片建筑网站ad
  • 建设信用卡网站首页北京网站推广排名外包
  • 网站安全 维护wordpress png 压缩
  • 网站建设开发全包在哪里可以做个人网站
  • 黑科技软件网站宣传片拍摄公司排名