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

有创意的婚纱网站模板下载wordpress小工具变成英文版

有创意的婚纱网站模板下载,wordpress小工具变成英文版,wordpress网站可以显示中文和英文,对网站开发实训的建议在Python编程中#xff0c;日志记录是一种重要的调试和错误追踪工具。Python的logging模块提供了一种灵活的框架#xff0c;用于发出日志消息#xff0c;这些消息可以被发送到各种输出源#xff0c;如控制台、文件、HTTP GET/POST位置等。本文将深入探讨Python的logging模块…在Python编程中日志记录是一种重要的调试和错误追踪工具。Python的logging模块提供了一种灵活的框架用于发出日志消息这些消息可以被发送到各种输出源如控制台、文件、HTTP GET/POST位置等。本文将深入探讨Python的logging模块包括其基本用法、高级特性以及如何将其应用到实际项目中。 首先我们来看一下logging模块的基本用法。logging模块的主要功能是提供一种灵活的框架用于发出日志消息。这些消息可以被发送到各种输出源如控制台、文件、HTTP GET/POST位置等。logging模块的核心是Logger类它提供了应用程序可直接使用的接口。Logger实例化后可以设置其日志级别DEBUG, INFO, WARNING, ERROR, CRITICAL并可以通过其方法来发出日志消息。 例如以下是一个简单的logging模块的使用示例 import logging# 创建一个logger logger logging.getLogger(my_logger) logger.setLevel(logging.DEBUG)# 创建一个handler用于写入日志文件 fh logging.FileHandler(test.log) fh.setLevel(logging.DEBUG)# 定义handler的输出格式 formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) fh.setFormatter(formatter)# 给logger添加handler logger.addHandler(fh)# 记录一条日志 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)在这个示例中我们首先创建了一个名为’my_logger’的logger并设置了其日志级别为DEBUG。然后我们创建了一个handler用于将日志消息写入到’test.log’文件中。我们还定义了handler的输出格式包括时间戳、logger的名字、日志级别和日志消息。最后我们将这个handler添加到logger中并发出了几条不同级别的日志消息。 除了基本的用法logging模块还提供了许多高级特性如过滤器、格式化器、处理器等。过滤器可以根据日志消息的内容或级别来决定是否应该处理这条消息。格式化器可以定义日志消息的输出格式。处理器则负责将日志消息发送到指定的输出源。 例如以下是如何使用过滤器和格式化器的示例 import logging# 创建一个logger logger logging.getLogger(my_logger) logger.setLevel(logging.DEBUG)# 创建一个handler用于写入日志文件 fh logging.FileHandler(test.log) fh.setLevel(logging.DEBUG)# 创建一个过滤器只处理INFO级别及以上的日志消息 class MyFilter(logging.Filter):def filter(self, record):return record.levelno logging.INFO filter MyFilter() fh.addFilter(filter)# 定义handler的输出格式 formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) fh.setFormatter(formatter)# 给logger添加handler logger.addHandler(fh)# 记录一条INFO级别的日志消息和一条DEBUG级别的日志消息 logger.info(This is an info message) logger.debug(This is a debug message) # 这条消息不会被处理因为它的级别低于INFO在这个示例中我们首先创建了一个名为’my_logger’的logger并设置了其日志级别为DEBUG。然后我们创建了一个handler用于将日志消息写入到’test.log’文件中。我们还创建了一个过滤器只处理INFO级别及以上的日志消息。最后我们将这个handler添加到logger中并发出了两条不同级别的日志消息。由于我们的过滤器只处理INFO级别及以上的日志消息所以DEBUG级别的日志消息不会被处理。 本专栏封装日志工具类供外部使用 配置文件 BASE:log_level: debugfh_file_log_level: debug #生产环境换成warninglog_extension: .logtest:url: http://119.3.246.198:64644配置文件调用代码更新 import os from utils.YamlUtil import YamlReadercurrent os.path.abspath(__file__)BASE_DIR os.path.dirname(os.path.dirname(current))_config_path BASE_DIR os.sep config _config_file _config_path os.sep conf.yml_log_path BASE_DIR os.sep logs def get_config_path():return _config_pathdef get_config_file():return _config_filedef get_log_path():return _log_path class ConfigYaml:def __init__(self):self.config YamlReader(get_config_file()).data()def get_conf_url(self):return self.config[BASE][test][url]def get_conf_log_level(self):#获取日志级别return self.config[BASE][log_level]def get_conf_fh_file_log_level(self):#获取日志文件级别return self.config[BASE][fh_file_log_level]def get_conf_log_extension(self):#获取日志文件扩展名return self.config[BASE][log_extension]日志工具类封装 import logging import datetime,os from config import Conf from config.Conf import ConfigYamllog_levels {info: logging.INFO,debug: logging.DEBUG,warning: logging.WARNING,error: logging.ERROR, }class Logger:def __init__(self, log_file, log_name, log_level, fh_file_log_level):self.log_file log_fileself.log_name log_nameself.log_level log_levelself.fh_file_log_level fh_file_log_levelself.logger logging.getLogger(self.log_name)self.logger.setLevel(log_levels[self.log_level])if not self.logger.handlers:fh_stream logging.StreamHandler()fh_stream.setLevel(log_levels[self.log_level])formatter logging.Formatter(%(asctime)s-%(name)s-%(levelname)s-%(message)s)fh_stream.setFormatter(formatter)fh_file logging.FileHandler(self.log_file,encodingutf-8) #注意此处不写encodingutf-8会出现导出日志中的中文乱码。fh_file.setLevel(log_levels[self.fh_file_log_level])fh_file.setFormatter(formatter)self.logger.addHandler(fh_stream)self.logger.addHandler(fh_file)log_path Conf.get_log_path() current_time datetime.datetime.now().strftime(%Y-%m-%d) conf_read ConfigYaml() log_extention conf_read.get_conf_log_extension() log_file os.path.join(log_path,current_timelog_extention) log_level conf_read.get_conf_log_level() fh_file_log_level conf_read.get_conf_fh_file_log_level()def tester_log(log_name __file__):return Logger(log_filelog_file, log_namelog_name, log_levellog_level, fh_file_log_levelfh_file_log_level).logger这段代码是一个Python日志记录模块的实现。它使用了logging库来创建和管理日志记录器并提供了自定义的日志级别和格式。 首先导入了必要的模块 logging用于创建和管理日志记录器。datetime和os用于获取当前时间和构建文件路径。Conf和ConfigYaml从配置文件中读取配置信息。 然后定义了一个名为Logger的类用于创建和管理日志记录器。该类接受以下参数 log_file日志文件的路径。log_name日志记录器的名称。log_level日志记录器的级别。fh_file_log_level文件处理器的日志级别。 在类的构造函数中首先根据传入的参数创建一个日志记录器对象并设置其级别。然后如果日志记录器没有处理程序handler则创建一个流处理器StreamHandler和一个文件处理器FileHandler。流处理器将日志输出到控制台而文件处理器将日志写入指定的文件中。 接下来定义了一些变量和常量 log_path日志文件所在的目录路径。current_time当前时间的字符串表示形式格式为YYYY-MM-DD。conf_read一个ConfigYaml对象用于读取配置文件中的配置信息。log_extention日志文件的扩展名。log_file完整的日志文件路径。log_level日志记录器的级别。fh_file_log_level文件处理器的日志级别。 最后定义了一个名为tester_log的函数用于创建并返回一个日志记录器对象。该函数接受一个可选参数log_name默认值为当前文件的名称。 使用这个模块你可以创建一个日志记录器对象并通过调用其方法来记录不同级别的日志消息。例如可以使用logger.info()、logger.debug()、logger.warning()或logger.error()来记录不同级别的日志消息。 工具类应用 在requests封装类中对requests添加日志 import requests from utils.LogUtil import tester_log class Request:def __init__(self):self.log tester_log()def requests_api(self, url, dataNone, jsonNone, headersNone, cookiesNone, methodget):if method get:self.log.debug(发送get请求)r requests.get(url, datadata, jsonjson, headersheaders, cookiescookies)elif method post:self.log.debug(发送post请求)r requests.post(url, datadata, jsonjson, headersheaders, cookiescookies)code r.status_codetry:body r.json()except Exception as e:body r.textres dict()res[code] coderes[body] bodyreturn resdef get(self, url, **kwargs):return self.requests_api(url, methodget, **kwargs)def post(self, url, **kwargs):return self.requests_api(url, methodpost, **kwargs)调用效果 def login():conf_y ConfigYaml()r Request()url_path conf_y.get_conf_url()url url_path/prod-api/logindata {username:test,password:49e881218a48a363c35c5215fdc80d3f48d6a17ba0a1f9242c66aebc7ea29c626b26d7ef3bdae00ee9fde85bbf837dcce9f9e4e8f4371d74ff6eaf98ab53d7715996761ef56bff06461e74eb4b3f582949fb3b5281a89fc997a1de35f86a9aad35b87980dcf94e43191293}resr.requests_api(url,jsondata,methodpost)# r requests.post(url,jsondata)print(res)if __name__ __main__:login()总的来说Python的logging模块提供了一种灵活的框架用于发出日志消息。通过使用logging模块我们可以方便地记录和管理程序的运行情况从而更好地进行调试和错误追踪。虽然logging模块的基本用法相对简单但其高级特性却非常强大可以帮助我们更有效地使用日志记录。因此对于任何使用Python进行开发的程序员来说理解和掌握logging模块都是非常必要的。
http://wiki.neutronadmin.com/news/50850/

相关文章:

  • 凡客建站百度旧版本下载
  • 大型门户网站源码爱战网关键词挖掘
  • 口碑好的邯郸网站建设网站建设与管理自考
  • 宠物医院网站建设甘肃购物网站建设
  • 做网站iiwokdw响应式网站模板下载
  • 网站制作制作网站登录按纽是灰色的
  • wordpress网站专题铸铁加工平台
  • 洛阳网站公司简单个人网站设计
  • 重庆网站开发公如何制作境外网站
  • 深圳网站建设 骏域网站建设平面设计接单网站有哪些
  • 财务费是指企业为施工生产深圳债务优化公司
  • 做微信h5的网站手机seo网站推广
  • 购买一个网站需要多少钱wordpress新用户无法注册
  • 网站的后台管理账号和密码国家备案网
  • 镇江网站排名优化价格青浦工厂网站建设
  • 杭州app开发公司定制外包怎么做公司网站优化
  • 精美网站制作广告传媒公司经营范围
  • 网站建设发展响应式网站模板dede
  • 自己做网站收费么网站三网合一案例
  • 闽侯福州网站建设网站建设自学网
  • 免费个人网站建设大全做门户网站用什么服务器
  • 苏州工业园区规划建设局网站找南昌网站开发公司电话
  • 网站建设规划书摘要500字用iis搭建网站
  • 做羞羞的网站网站建设方案 doc
  • 网站做的好不好看什么在百度做个卷闸门网站怎么做
  • 个人网站模板源码下载企业门户平台设计方案
  • 做设计的网站广州市网络seo外包
  • 网站建设案例查询泉州专门做网站
  • 上海韵茵网站建设线上培训平台
  • seo网站优化方案案例朔州建设机械网站