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

wordpress页面不留边潍坊seo推广

wordpress页面不留边,潍坊seo推广,网站建设需要注册42类吗,房地产销售入门培训python-日志模块以及实际使用设计 1. 基本组成 日志模块四个组成部分#xff1a; 日志对象#xff1a;产生日志信息日志处理器#xff1a;将日志信息输出到指定地方#xff0c;例如终端、文件。格式器#xff1a;在日志处理器输出之前#xff0c;对信息进行各方面的美化…python-日志模块以及实际使用设计 1. 基本组成 日志模块四个组成部分 日志对象产生日志信息日志处理器将日志信息输出到指定地方例如终端、文件。格式器在日志处理器输出之前对信息进行各方面的美化。过滤器在日志处理器输出之前将信息按照过滤器的条件过滤一遍。比如按照日志级别进行过滤。 日志本质上就是如下流程 #mermaid-svg-7PHp3WjWQzfwFkci {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-7PHp3WjWQzfwFkci .error-icon{fill:#552222;}#mermaid-svg-7PHp3WjWQzfwFkci .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-7PHp3WjWQzfwFkci .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-7PHp3WjWQzfwFkci .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-7PHp3WjWQzfwFkci .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-7PHp3WjWQzfwFkci .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-7PHp3WjWQzfwFkci .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-7PHp3WjWQzfwFkci .marker{fill:#333333;stroke:#333333;}#mermaid-svg-7PHp3WjWQzfwFkci .marker.cross{stroke:#333333;}#mermaid-svg-7PHp3WjWQzfwFkci svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-7PHp3WjWQzfwFkci .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-7PHp3WjWQzfwFkci .cluster-label text{fill:#333;}#mermaid-svg-7PHp3WjWQzfwFkci .cluster-label span{color:#333;}#mermaid-svg-7PHp3WjWQzfwFkci .label text,#mermaid-svg-7PHp3WjWQzfwFkci span{fill:#333;color:#333;}#mermaid-svg-7PHp3WjWQzfwFkci .node rect,#mermaid-svg-7PHp3WjWQzfwFkci .node circle,#mermaid-svg-7PHp3WjWQzfwFkci .node ellipse,#mermaid-svg-7PHp3WjWQzfwFkci .node polygon,#mermaid-svg-7PHp3WjWQzfwFkci .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-7PHp3WjWQzfwFkci .node .label{text-align:center;}#mermaid-svg-7PHp3WjWQzfwFkci .node.clickable{cursor:pointer;}#mermaid-svg-7PHp3WjWQzfwFkci .arrowheadPath{fill:#333333;}#mermaid-svg-7PHp3WjWQzfwFkci .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-7PHp3WjWQzfwFkci .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-7PHp3WjWQzfwFkci .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-7PHp3WjWQzfwFkci .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-7PHp3WjWQzfwFkci .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-7PHp3WjWQzfwFkci .cluster text{fill:#333;}#mermaid-svg-7PHp3WjWQzfwFkci .cluster span{color:#333;}#mermaid-svg-7PHp3WjWQzfwFkci div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-7PHp3WjWQzfwFkci :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;} 日志信息 日志信息 日志信息 日志信息 过滤的日志信息 过滤日志信息 格式的日志信息 格式的日志信息 日志对象 日志处理器1 日志处理器2 过滤器:过滤日志信息 过滤器:过滤日志信息 格式器:格式日志信息 格式器:格式日志信息 输出 输出 日志级别 logging.DEBUG是个int数等于10logging.INFO 20logging.WARNING 30logging.ERROR 40logging.CRITICAL 50 2. 基本使用-在终端打印日志 logging.StreamHandler将日志信息输出到终端上。 import logging # 1创建日志对象 logger logging.getLogger() # 2设置日志对象级别INFO以及INFO以上信息被输出。 # 本质上就是自己规定哪些信息属于INFO级别比如正常运行的记录。 logger.setLevel(logging.INFO) # 3创建日志处理器 # 将日志处理器加入到日志对象中,可以绑定多个。 # 绑定终端处理器将日志信息输出到终端上。 stream_handler_1 logging.StreamHandler() stream_handler_2 logging.StreamHandler() logger.addHandler(stream_handler_1) # 绑定第二个终端处理器。 logger.addHandler(stream_handler_2)# 4日志对象产生日志信息 # 日志对象可以产生五种级别的日志信息。 logger.debug(这是一个debug级别的日志信息) logger.info(这是一个info级别的日志信息) logger.warning(这是一个warning级别的日志信息) logger.error(这是一个error级别的日志信息) logger.critical(这是一个critical级别的日志信息)3. 基本使用-日志打印到文件 本质就是更换日志处理器利用logging.FileHandler()将日志信息输出到文件内。 import logginglogger logging.getLogger() # 设置日志最低级别。 logger.setLevel(logging.INFO)# 绑定第一个文件处理器 将日志信息输出到文件内。 file_handler logging.FileHandler(filename../logs/test.log, modea, encodingutf8) logger.addHandler(file_handler) # 绑定第二个终端处理器将日志信息输出到终端上。 stream_handler logging.StreamHandler() logger.addHandler(stream_handler)# 日志对象产生日志信息 logger.debug(这是一个debug级别的日志信息) logger.info(这是一个info级别的日志信息) logger.warning(这是一个warning级别的日志信息) logger.error(这是一个error级别的日志信息) logger.critical(这是一个critical级别的日志信息)4. 基本使用-使用格式器美化日志信息 创建方法使用logging.Formatter()。使用方法处理器绑定格式器。通过setFormatter()方法进行绑定。使用目的日志信息需要提供功能查看什么时间哪个文件的哪一行发生了什么情况。 import logginglogger logging.getLogger()# 设置日志最低级别。 logger.setLevel(logging.INFO)# 绑定终端处理器 stream_handler logging.StreamHandler() logger.addHandler(stream_handler)# 绑定文件处理器 file_handler logging.FileHandler(filename../logs/test.log, modea, encodingutf8) logger.addHandler(file_handler)# 创建格式器 # asctime时间。 # levelname: 日志信息级别。 # filename: 输出日志信息代码所在的文件名称。 # lineno:输出语句所在文件的行数。 # message: 日志信息。 fmt logging.Formatter(%(asctime)s - [%(levelname)s] - %(filename)s[%(lineno)d]%(message)s)# 将格式器绑定到处理器上 stream_handler.setFormatter(fmt) file_handler.setFormatter(fmt)# 日志对象产生日志信息 logger.debug(这是一个debug级别的日志信息) logger.info(这是一个info级别的日志信息) logger.warning(这是一个warning级别的日志信息) logger.error(这是一个error级别的日志信息) logger.critical(这是一个critical级别的日志信息)# 终端中会输出如下信息2024-01-06 18:42:43,755 - [INFO] - 1.py[25]这是一个info级别的日志信息 2024-01-06 18:42:43,756 - [WARNING] - 1.py[26]这是一个warning级别的日志信息 2024-01-06 18:42:43,756 - [ERROR] - 1.py[27]这是一个error级别的日志信息 2024-01-06 18:42:43,757 - [CRITICAL] - 1.py[28]这是一个critical级别的日志信息5. 基本使用-使用过滤器过滤日志信息 创建方法继承重写一下logging.Filter类的filter方法。使用方法处理器通过addFilter()方法绑定过滤器。使用目的一般情况都是按照日志级别进行过滤目的在于对将不同级别的日志信息输出到不同的文件中方便进行查看。 import logging# 1. 创建过滤器 class LogFilter(logging.Filter):def __init__(self, name, low_level10, high_level50):super().__init__(namename)self.low_level low_levelself.high_level high_leveldef filter(self, record):return True if self.low_level record.levelno self.high_level else Falselogger logging.getLogger()# 2. 设置日志最低级别。 logger.setLevel(logging.DEBUG)# 3. 绑定终端处理器 stream_handler logging.StreamHandler() logger.addHandler(stream_handler) # 绑定文件处理器 file_handler logging.FileHandler(filename./test.log, modea, encodingutf8) logger.addHandler(file_handler)# 4. 创建格式器 fmt logging.Formatter(%(asctime)s - [%(levelname)s] - %(filename)s[%(lineno)d]%(message)s) # 将格式器绑定到处理器上 stream_handler.setFormatter(fmt) file_handler.setFormatter(fmt)# 5. 创建过滤器 normal_filter LogFilter(normal, logging.DEBUG, 20) nonormal_filter LogFilter(nonormal, logging.WARNING, logging.CRITICAL)# 6. 终端处理器绑定正常过滤器 stream_handler.addFilter(normal_filter)# 7. 文件处理器绑定非正常过滤器 file_handler.addFilter(nonormal_filter)# 日志对象产生日志信息 logger.debug(这是一个debug级别的日志信息) logger.info(这是一个info级别的日志信息) logger.warning(这是一个warning级别的日志信息) logger.error(这是一个error级别的日志信息) logger.critical(这是一个critical级别的日志信息)# 终端中打印以下信息2024-01-06 20:40:14,689 - [DEBUG] - 1.py[46]这是一个debug级别的日志信息 2024-01-06 20:40:14,689 - [INFO] - 1.py[47]这是一个info级别的日志信息 # 文件中打印以下信息2024-01-06 20:40:14,689 - [WARNING] - 1.py[48]这是一个warning级别的日志信息 2024-01-06 20:40:14,689 - [ERROR] - 1.py[49]这是一个error级别的日志信息 2024-01-06 20:40:14,689 - [CRITICAL] - 1.py[50]这是一个critical级别的日志信息6. 进阶使用-日常工作中的日志模块设计 日常工作中日志模块设计思路 使用时只需要配置日志文件存放地址就可以。日志文件的存放时间间隔每小时或者每天。设置日志的输出级别。在服务模块中存放间隔、存放路径都可以放在配置文件中。日志模块一般情况下放在工程中的util文件中。看自己习惯。 util/logger.py设计如下也可以按照自己的额外思路进行设计。 import logging import time import os# 一个logging.Logger()对象 class Logging:def __init__(self):self.logger logging.getLogger()self.logger.setLevel(logging.INFO)# 一个自定义过滤器 class Filter(logging.Filter):def __init__(self, name, low_level, high_level):super().__init__(namename)self.low_level low_levelself.high_level high_leveldef filter(self, record):return True if self.low_level record.levelno self.high_level else False# 主函数从logger.py文件汇总引人get_logger函数 def get_logger(log_root_path, low_levellogging.INFO, high_levellogging.CRITICAL):logger Logging().loggerlog_file_name f{time.strftime(%Y%m%d-%H, time.localtime())}.loghandler logging.FileHandler(filenameos.path.join(log_root_path, log_file_name),modea,encodingutf-8)fmt logging.Formatter(%(asctime)s - [%(levelname)s] - %(filename)s[%(lineno)d]%(message)s)filter Filter(dev, low_level, high_level)handler.setFormatter(fmt)handler.addFilter(filter)logger.addHandler(handler)return loggerif __name__ __main__:# 正常情况下只需要输入日志路径即可。logger get_logger(./)logger.info(这是一个测试)
http://www.hkea.cn/news/14439741/

相关文章:

  • 做网站选哪家江苏建筑培训网
  • 门户网站建设工作流程网站开发用到的编程
  • 建网站空间的详细说明品牌推广计划
  • 中信建设有限责任公司官方网站有什么做第二职业的网站吗
  • 网站编程语言排行榜企业网站做百度小程序
  • 广州网站建设平台邯郸网络运营中心电话
  • 东莞做网站公司在哪泉州seo优化排名公司
  • 住房和城乡建设部网站主页博乐建设工程信息网站
  • 网站建设前期策划方案学校网站建设的意义和目的
  • 做微信的微网站费用多少做网站横幅的图片多大
  • 购物网站哪个是正品网页传奇排名
  • 网站备案后打不开腾讯企业邮箱登录入口电脑版
  • 在国际网站做外贸需要条件做报名链接的网站
  • 南京网站开发价格phpcms模板行业网站
  • 表格模板网站永州网站开发
  • 阿里云建网站流程网站推广排名服务
  • 做计算机题目的网站在线生成小程序
  • 网站设计全包网页制作软件html
  • 临沂电商网站建设网页设计与网站建设实训报告
  • 研究生院 网站 建设番禺制作网站技术
  • 希尔顿酒店网站建设的优点制作灯笼的视频
  • 网站建设读书笔记seo搜索优化专员招聘
  • 北京公司响应式网站建设价位门户网站建设的平台搭建
  • 西安学建网站赣州网络
  • 网站建设需要域名关于备案空壳网站清理通知
  • 做外贸有必要做个网站吗十大营销策划公司排名
  • 网站建设文案详情手机网站设计建设服务
  • 有没有兼职做设计的网站淄博手机网站建设公司
  • 网站建设行吗网站优化计划书
  • 网站信息安全保障制度建设情况一个人怎样做网站