注册个网站要多少钱wordpress浮动导航菜单

diannao/2026/1/16 14:49:15/文章来源:
注册个网站要多少钱,wordpress浮动导航菜单,外贸人常用的app,牡丹江网络推广公司Python标准模块--logging参考http://www.cnblogs.com/zhbzz2007/p/5943685.html1 logging模块简介logging模块是Python内置的标准模块#xff0c;主要用于输出运行日志#xff0c;可以设置输出日志的等级、日志保存路径、日志文件回滚等#xff1b;相比print#xff0c;具备…Python标准模块--logging参考http://www.cnblogs.com/zhbzz2007/p/5943685.html1 logging模块简介logging模块是Python内置的标准模块主要用于输出运行日志可以设置输出日志的等级、日志保存路径、日志文件回滚等相比print具备如下优点可以通过设置不同的日志等级在release版本中只输出重要信息而不必显示大量的调试信息print将所有信息都输出到标准输出中严重影响开发者从标准输出中查看其它数据logging则可以由开发者决定将信息输出到什么地方以及怎么输出2 logging模块使用2.1 基本使用配置logging基本的设置然后在控制台输出日志import logging logging.basicConfig(level logging.INFO,format %(asctime)s - %(name)s - %(levelname)s - %(message)s) logger logging.getLogger(__name__)logger.info(Start print log) logger.debug(Do something) logger.warning(Something maybe fail.) logger.info(Finish)运行时控制台输出2016-10-09 19:11:19,434 - __main__ - INFO - Start print log 2016-10-09 19:11:19,434 - __main__ - WARNING - Something maybe fail. 2016-10-09 19:11:19,434 - __main__ - INFO - Finishlogging中可以选择很多消息级别如debug、info、warning、error以及critical。通过赋予logger或者handler不同的级别开发者就可以只输出错误信息到特定的记录文件或者在调试时只记录调试信息。例如我们将logger的级别改为DEBUG再观察一下输出结果logging.basicConfig(level logging.DEBUG,format %(asctime)s - %(name)s - %(levelname)s - %(message)s)控制台输出可以发现输出了debug的信息。2016-10-09 19:12:08,289 - __main__ - INFO - Start print log 2016-10-09 19:12:08,289 - __main__ - DEBUG - Do something 2016-10-09 19:12:08,289 - __main__ - WARNING - Something maybe fail. 2016-10-09 19:12:08,289 - __main__ - INFO - Finishlogging.basicConfig函数各参数filename指定日志文件名filemode和file函数意义相同指定日志文件的打开模式w或者aformat指定输出的格式和内容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打印日志信息datefmt指定时间格式同time.strftime()level设置日志级别默认为logging.WARNNINGstream指定将日志的输出流可以指定输出到sys.stderrsys.stdout或者文件默认输出到sys.stderr当stream和filename同时指定时stream被忽略2.2 将日志写入到文件2.2.1 将日志写入到文件设置logging创建一个FileHandler并对输出消息的格式进行设置将其添加到logger然后将日志写入到指定的文件中import logging logger logging.getLogger(__name__) logger.setLevel(level logging.INFO) handler logging.FileHandler(log.txt) handler.setLevel(logging.INFO) formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) handler.setFormatter(formatter) logger.addHandler(handler)logger.info(Start print log) logger.debug(Do something) logger.warning(Something maybe fail.) logger.info(Finish)log.txt中日志数据为2016-10-09 19:01:13,263 - __main__ - INFO - Start print log 2016-10-09 19:01:13,263 - __main__ - WARNING - Something maybe fail. 2016-10-09 19:01:13,263 - __main__ - INFO - Finish2.2.2 将日志同时输出到屏幕和日志文件logger中添加StreamHandler可以将日志输出到屏幕上import logging logger logging.getLogger(__name__) logger.setLevel(level logging.INFO) handler logging.FileHandler(log.txt) handler.setLevel(logging.INFO) formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) handler.setFormatter(formatter)console logging.StreamHandler() console.setLevel(logging.INFO)logger.addHandler(handler) logger.addHandler(console)logger.info(Start print log) logger.debug(Do something) logger.warning(Something maybe fail.) logger.info(Finish)可以在log.txt文件和控制台中看到2016-10-09 19:20:46,553 - __main__ - INFO - Start print log 2016-10-09 19:20:46,553 - __main__ - WARNING - Something maybe fail. 2016-10-09 19:20:46,553 - __main__ - INFO - Finish可以发现logging有一个日志处理的主对象其他处理方式都是通过addHandler添加进去logging中包含的handler主要有如下几种handler名称位置作用StreamHandlerlogging.StreamHandler日志输出到流可以是sys.stderrsys.stdout或者文件 FileHandlerlogging.FileHandler日志输出到文件 BaseRotatingHandlerlogging.handlers.BaseRotatingHandler基本的日志回滚方式 RotatingHandlerlogging.handlers.RotatingHandler日志回滚方式支持日志文件最大数量和日志文件回滚 TimeRotatingHandlerlogging.handlers.TimeRotatingHandler日志回滚方式在一定时间区域内回滚日志文件 SocketHandlerlogging.handlers.SocketHandler远程输出日志到TCP/IP sockets DatagramHandlerlogging.handlers.DatagramHandler远程输出日志到UDP sockets SMTPHandlerlogging.handlers.SMTPHandler远程输出日志到邮件地址 SysLogHandlerlogging.handlers.SysLogHandler日志输出到syslog NTEventLogHandlerlogging.handlers.NTEventLogHandler远程输出日志到Windows NT/2000/XP的事件日志 MemoryHandlerlogging.handlers.MemoryHandler日志输出到内存中的指定buffer HTTPHandlerlogging.handlers.HTTPHandler通过GET或者POST远程输出到HTTP服务器2.2.3 日志回滚使用RotatingFileHandler可以实现日志回滚import logging from logging.handlers import RotatingFileHandler logger logging.getLogger(__name__) logger.setLevel(level logging.INFO) #定义一个RotatingFileHandler最多备份3个日志文件每个日志文件最大1K rHandler RotatingFileHandler(log.txt,maxBytes 1*1024,backupCount 3) rHandler.setLevel(logging.INFO) formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) rHandler.setFormatter(formatter)console logging.StreamHandler() console.setLevel(logging.INFO) console.setFormatter(formatter)logger.addHandler(rHandler) logger.addHandler(console)logger.info(Start print log) logger.debug(Do something) logger.warning(Something maybe fail.) logger.info(Finish)可以在工程目录中看到备份的日志文件2016/10/09 19:36 732 log.txt 2016/10/09 19:36 967 log.txt.1 2016/10/09 19:36 985 log.txt.2 2016/10/09 19:36 976 log.txt.32.3 设置消息的等级可以设置不同的日志等级用于控制日志的输出日志等级使用范围FATAL致命错误 CRITICAL特别糟糕的事情如内存耗尽、磁盘空间为空一般很少使用 ERROR发生错误时如IO操作失败或者连接问题 WARNING发生很重要的事件但是并不是错误时如用户登录密码错误 INFO处理请求或者状态变化等日常事务 DEBUG调试过程中使用DEBUG等级如算法中每个循环的中间状态2.4 捕获tracebackPython中的traceback模块被用于跟踪异常返回信息可以在logging中记录下traceback代码import logging logger logging.getLogger(__name__) logger.setLevel(level logging.INFO) handler logging.FileHandler(log.txt) handler.setLevel(logging.INFO) formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) handler.setFormatter(formatter)console logging.StreamHandler() console.setLevel(logging.INFO)logger.addHandler(handler) logger.addHandler(console)logger.info(Start print log) logger.debug(Do something) logger.warning(Something maybe fail.) try:open(sklearn.txt,rb) except (SystemExit,KeyboardInterrupt):raise except Exception:logger.error(Faild to open sklearn.txt from logger.error,exc_info True)logger.info(Finish)控制台和日志文件log.txt中输出Start print log Something maybe fail. Faild to open sklearn.txt from logger.error Traceback (most recent call last):File G:\zhb7627\Code\Eclipse WorkSpace\PythonTest\test.py, line 23, in moduleopen(sklearn.txt,rb) IOError: [Errno 2] No such file or directory: sklearn.txt Finish也可以使用logger.exception(msg,_args)它等价于logger.error(msg,exc_info True,_args)将logger.error(Faild to open sklearn.txt from logger.error,exc_info True)替换为logger.exception(Failed to open sklearn.txt from logger.exception)控制台和日志文件log.txt中输出Start print log Something maybe fail. Failed to open sklearn.txt from logger.exception Traceback (most recent call last):File G:\zhb7627\Code\Eclipse WorkSpace\PythonTest\test.py, line 23, in moduleopen(sklearn.txt,rb) IOError: [Errno 2] No such file or directory: sklearn.txt Finish2.5 多模块使用logging主模块mainModule.pyimport logging import subModule logger logging.getLogger(mainModule) logger.setLevel(level logging.INFO) handler logging.FileHandler(log.txt) handler.setLevel(logging.INFO) formatter logging.Formatter(%(asctime)s - %(name)s - %(levelname)s - %(message)s) handler.setFormatter(formatter)console logging.StreamHandler() console.setLevel(logging.INFO) console.setFormatter(formatter)logger.addHandler(handler) logger.addHandler(console)logger.info(creating an instance of subModule.subModuleClass) a subModule.SubModuleClass() logger.info(calling subModule.subModuleClass.doSomething) a.doSomething() logger.info(done with subModule.subModuleClass.doSomething) logger.info(calling subModule.some_function) subModule.som_function() logger.info(done with subModule.some_function)子模块subModule.pyimport loggingmodule_logger logging.getLogger(mainModule.sub) class SubModuleClass(object):def __init__(self):self.logger logging.getLogger(mainModule.sub.module)self.logger.info(creating an instance in SubModuleClass)def doSomething(self):self.logger.info(do something in SubModule)a []a.append(1)self.logger.debug(list a str(a))self.logger.info(finish something in SubModuleClass)def som_function():module_logger.info(call function some_function)执行之后在控制和日志文件log.txt中输出2016-10-09 20:25:42,276 - mainModule - INFO - creating an instance of subModule.subModuleClass 2016-10-09 20:25:42,279 - mainModule.sub.module - INFO - creating an instance in SubModuleClass 2016-10-09 20:25:42,279 - mainModule - INFO - calling subModule.subModuleClass.doSomething 2016-10-09 20:25:42,279 - mainModule.sub.module - INFO - do something in SubModule 2016-10-09 20:25:42,279 - mainModule.sub.module - INFO - finish something in SubModuleClass 2016-10-09 20:25:42,279 - mainModule - INFO - done with subModule.subModuleClass.doSomething 2016-10-09 20:25:42,279 - mainModule - INFO - calling subModule.some_function 2016-10-09 20:25:42,279 - mainModule.sub - INFO - call function some_function 2016-10-09 20:25:42,279 - mainModule - INFO - done with subModule.some_function首先在主模块定义了loggermainModule并对它进行了配置就可以在解释器进程里面的其他地方通过getLogger(mainModule)得到的对象都是一样的不需要重新配置可以直接使用。定义的该logger的子logger都可以共享父logger的定义和配置所谓的父子logger是通过命名来识别任意以mainModule开头的logger都是它的子logger例如mainModule.sub。实际开发一个application首先可以通过logging配置文件编写好这个application所对应的配置可以生成一个根logger如PythonAPP然后在主函数中通过fileConfig加载logging配置接着在application的其他地方、不同的模块中可以使用根logger的子logger如PythonAPP.CorePythonAPP.Web来进行log而不需要反复的定义和配置各个模块的logger。3 通过JSON或者YAML文件配置logging模块尽管可以在Python代码中配置logging但是这样并不够灵活最好的方法是使用一个配置文件来配置。在Python 2.7及以后的版本中可以从字典中加载logging配置也就意味着可以通过JSON或者YAML文件加载日志的配置。3.1 通过JSON文件配置JSON配置文件{version:1,disable_existing_loggers:false,formatters:{simple:{format:%(asctime)s - %(name)s - %(levelname)s - %(message)s}},handlers:{console:{class:logging.StreamHandler,level:DEBUG,formatter:simple,stream:ext://sys.stdout},info_file_handler:{class:logging.handlers.RotatingFileHandler,level:INFO,formatter:simple,filename:info.log,maxBytes:10485760,backupCount:20,encoding:utf8},error_file_handler:{class:logging.handlers.RotatingFileHandler,level:ERROR,formatter:simple,filename:errors.log,maxBytes:10485760,backupCount:20,encoding:utf8}},loggers:{my_module:{level:ERROR,handlers:[info_file_handler],propagate:no}},root:{level:INFO,handlers:[console,info_file_handler,error_file_handler]} }通过JSON加载配置文件然后通过logging.dictConfig配置loggingimport json import logging.config import osdef setup_logging(default_path logging.json,default_level logging.INFO,env_key LOG_CFG):path default_pathvalue os.getenv(env_key,None)if value:path valueif os.path.exists(path):with open(path,r) as f:config json.load(f)logging.config.dictConfig(config)else:logging.basicConfig(level default_level)def func():logging.info(start func)logging.info(exec func)logging.info(end func)if __name__ __main__:setup_logging(default_path logging.json)func()3.2 通过YAML文件配置通过YAML文件进行配置比JSON看起来更加简介明了version: 1 disable_existing_loggers: False formatters:simple:format: %(asctime)s - %(name)s - %(levelname)s - %(message)s handlers:console:class: logging.StreamHandlerlevel: DEBUGformatter: simplestream: ext://sys.stdoutinfo_file_handler:class: logging.handlers.RotatingFileHandlerlevel: INFOformatter: simplefilename: info.logmaxBytes: 10485760backupCount: 20encoding: utf8error_file_handler:class: logging.handlers.RotatingFileHandlerlevel: ERRORformatter: simplefilename: errors.logmaxBytes: 10485760backupCount: 20encoding: utf8 loggers:my_module:level: ERRORhandlers: [info_file_handler]propagate: no root:level: INFOhandlers: [console,info_file_handler,error_file_handler]通过YAML加载配置文件然后通过logging.dictConfig配置loggingimport yaml import logging.config import osdef setup_logging(default_path logging.yaml,default_level logging.INFO,env_key LOG_CFG):path default_pathvalue os.getenv(env_key,None)if value:path valueif os.path.exists(path):with open(path,r) as f:config yaml.load(f)logging.config.dictConfig(config)else:logging.basicConfig(level default_level)def func():logging.info(start func)logging.info(exec func)logging.info(end func)if __name__ __main__:setup_logging(default_path logging.yaml)func()4 Reference每个 Python 程序员都要知道的日志实践Python标准模块loggingpython 的日志logging模块学习分类: Python标签: Python

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/diannao/91429.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站备案法律百度网址提交入口平台

阿里HR面试核心的几个问题: 1、你为什么离职? 2、你怎么看待自己的职业生涯?(包括怎么平衡家庭和工作的关系、加班、选择一家公司时的考量、location等) 3、薪资期望 4、项目中遇到的最大挑战是什么?怎么…

做外贸网站怎么访问外国网站站长工具是什么意思

有这样一句名言:要吃掉一头大象,每次吃一口。—— 克雷顿艾布拉姆斯(Creighton Abrams)这句名言给我们的启示就是:看起来非常艰巨的任务,不能一蹴而就,需要进行任务分解,一步一步把它…

中国建设局网站查询建设银行保定分行网站

9.1 模板方法模式概述 模板方法模式是一种行为设计模式,它使用一个抽象的基类定义了一个操作中的算法的骨架,而将一些步骤的实现延迟到子类中。模板方法模式允许子类在不改变算法结构的情况下重新定义算法中的某些步骤。 9.2 代码示例 在Python中使用…

优化一个网站需要多少钱合肥网站建设哪家好价格

使用在 DateTimeFormatInfo 的属性中存储的标准或自定义模式设置 DateTime 值的格式。 可以通过设置可写 DateTimeFormatInfo 的关联属性用自定义模式替代标准模式。若要确定 DateTimeFormatInfo 是否是可写的,请使用 IsReadOnly 属性。 下表列出了每一种标准模式的…

网站上传图片问题江苏建设工程造价管理网站

Mysql的大体结构 客户端:用于链接mysql的软件 连接池: sql接口: 查询解析器: MySQL连接层 连接层: 应用程序通过接口(如odbc,jdbc)来连接mysql,最先连接处理的是连接层。 连接层…

0基础学做网站关于建设设计院公司网站的建议

转载自 史上最全 50 道 Redis 面试题 1、什么是Redis? Redis本质上是一个Key-Value类型的内存数据库,很像memcached,整个数据库统统加载在内存当中进行操作,定期通过异步操作把数据库数据flush到硬盘上进行保存。因为是纯内存…

中国建设工程招标网官方网站学校网站开发研究的意义和目的

vue创建项目(npm安装→初始化项目) 第一步npm安装 首先:先从nodejs.org中下载nodejs 图1 双击安装,在安装界面一直Next 图2 图3 图4 直到Finish完成安装。 打开控制命令行程序(CMD),检查是否正常 图5 …

网站建设制作过程网站 功能呢

目录 1. 目录结构 2. 代码实现 2.1 安装Express 2.2 app.js - 主文件 2.3 globalMiddleware.js - 全局中间件 3. 程序运行结果 4. 总结 在Node.js的Express框架中,全局生效的中间件是指应用程序启动后,对所有请求都有效的中间件。它通常用于日志记…

个人网站做音乐网要备文化罗湖做网站公司排名

目录 🎈了解题意 🎈算法原理 🚩先处理第一行和最后一行 🚩再处理中间行 🎈实现代码 🎈了解题意 大家看到这个题目的时候肯定是很迷茫的,包括我自己也是搞不清楚题目什么意思,我…

网站开发培训什么本地linux做网站

以下来自一位程序员母亲和工作人员的对话。程序员妈妈:您好,可以帮我推荐一本适合我家小孩看的编程书籍吗?兔子:可以的呀,《Scratch从入门到精通》,这本书适合小孩学习,您可以先看一下哦~程序员…

企业网站关键词应如何优化资源类网站怎么做

目录 前言 几个相关概念 反向传播 梯度下降 损失函数 优化函数

网站开发赚钱方向网站开发费用怎么入账

本文目录 一、添加一个简单的图层二、添加一个显示图片的图层三、为什么CALayer中使用CGColorRef和CGImageRef这2种数据类型,而不用UIColor和UIImage?四、UIView和CALayer的选择五、UIView和CALayer的其他关系* 上一讲已经说过,UIView内部默认…

网站上海备案万网网站后台管理

Nacos服务发现的方式 1.客户端获取 1.1:先是故障转移机制判断是否去本地文件中读取信息,读到则返回 1.2:再去本地服务列表读取信息(本地缓存),没读到则创建一个空的服务,然后立刻去nacos中读取更新 1.3:读到了就返回,同时开启定时…

长沙网站设计优刻如何设计一款app

对这于这编程语言,要把概念理清也不是件很容易的事情,先是想到叫云语言,就是一种可以聚合工作,社交,人机交互的语言,但是感觉不太明确,百度下有个云语言的百科,是个假大空的东西。 又…

做冻品的网站建设银行网站怎么取消短信服务

参考链接: 使用ASCII值检查Java中的字符串是否仅包含字母 将字符串name 转化为首字母大写。普遍的做法是用subString()取第一个字母转成大写再与之后的拼接: str str.substring(0, 1).toUpperCase() str.substring(1); 看到一种效率更高的做法&…

在小型网站建设小组中的基本建设网站的市场定位

文章目录 前言源码获取一、认识Documents4j二、快速集成2.1、pom.xml依赖2.2、word转PDF实现项目目录WordUtils.javaDemo6.java测试效果 参考文章资料获取 前言 博主介绍:✌目前全网粉丝2W,csdn博客专家、Java领域优质创作者,博客之星、阿里…

新余建网站网易企业邮箱收费版

动态标签 1.用于处理SQL语句中的空白字符和多余的逗号 -- prefix:指定在SQL语句开头添加的内容。 -- prefixOverrides:指定需要移除的开头部分的内容。 -- suffix:指定在SQL语句结尾添加的内容。 -- suffixOverrides:指定需要移…

大学生建设什么网站好wordpress 下载站点

HashMap的底层结构在jdk1.7中由数组链表实现,在jdk1.8中由数组链表红黑树实现,以数组链表的结构为例。 JDK1.8之前Put方法: JDK1.8之后Put方法: HashMap基于哈希表的Map接口实现,是以key-value存储形式存在&#xff0c…

珠海网站建设建站系统域名注册服务网站

目录 1. 问题分析 2. 技术分析 3. 程序代码 4. 代码运行结果 1. 问题分析 日常工作尤其是测绘、地质、遥感行业,需要画DEM模型,并在这个模型的基础上,进行着色、渲染。比如,地质分析地面三维地表形变之时,需要根据D…

用php源码如何建设网站购物网站促销方案

在进行Facebook群控时,ip地址的管理是非常重要的,因为Facebook通常会检测ip地址的使用情况,如果发现有异常的使用行为,比如从同一个ip地址频繁进行登录、发布内容或者在短时间内进行大量的活动等等,就会视为垃圾邮件或…