python print命令,以下是print python语句运行结果的是
你一开始还在用print调试程序吗?如果我们的程序比较简单,只需要输出信息到控制台,我们可以用print打印一些信息来调试程序。但如果项目比较复杂,需要在文件等很多地方输出信息,使用大量打印会显得不专业。日志是每个项目不可或缺的一部分,无疑是非常重要的。使用日志有三个目的。其中之一就是使用日志有助于调试程序。其次,日志信息有助于我们找出错误;第三,使用日志可以记录一些数据,供后期数据分析。
另一方面,logging的基础使用1.1基础知识水平数值使用时序DEBUG10的详细信息,WARNING30常用于调试INFO20程序正常执行过程中出现的一些信息,提醒用户虽然程序仍在正常运行,但可能会出现错误。ERROR40是一个更严重的问题,程序无法执行某些任务。CRITICAL50是一个严重错误,程序无法再执行33330。
默认的日志级别是警告。即不输出调试和信息的输出信息,只输出CRITICAL、EROOR和WARNING的信息。
1.2案例1 # importlogginglogging.debug(调试)logging . info)logging . warning)logging . eer
1.3情况2-指定日志输出级别#数据包导入日志#指定日志级别logging . basic config(level=logging . info)logging . debug(logging . logging))调试)logging.warning(警告)
1.4案例3将日志信息写入文件导入log #默认情况下,添加模式logging . basic config(filename= demo . log ,level=logging。调试)。改变写入模式:该模式首先写入新内容的logging . basic config(filename= demo . log , w )。
1.5案例4日志输出变量信息importloggingname= djk age=12 logging . basic config(level=logging . debug)格式化变量的几种方法logging e,age)) logging.debug),name {} age (}。格式)姓名、年龄))记录
1.6案例5日志信息格式importloggingloging . basic config(fotmat= #(asctime)s %)level name)s %)line no)s %
其次,通过编程实现了日志模块。它采用模块化设计,主要包括四个部分。
记录器:句柄:处理器,提供记录器和APP代码可以直接使用的接口,将记录器生成的日志发送到目标过滤器:Filters,提供更好的粒度控制,哪些日志是formatters:formatters:foorm。
创建记录器,用默认级别创建处理程序,然后设置日志级别。应该注意,一个记录器可以有多个句柄3 3。自定义日志格式4。记录器日志格式5。处理器日志格式6。记录器和处理器协会7。这是不必要的。8.logger和Filter9之间的关联。处理程序和过滤器之间的关联
创建输入记录# 1。logger并设置日志级别logger=logging . get logger( applog )以创建记录。记录器的日志级别# 2在名称apploglogging . basic config(level=logging . debug)中指定。定义处理器并设置和创建日志级控制台handler=logging.streamhandler)
处理器控制台handler . set level(logging . debug)file handler=logging . file handler(filename= demo . log )file handler . set level(logging . debug)# 3 .设置日志输出格式formatter=logging . formatter( %(ASC time)s %(level name)s %(filename)s:%(line no)s %(message)s )#创建日志格式# 4。设置处理器的日志格式:控制台处理器。setformatter(格式化程序)filehandler。setformatter(格式化程序)# 5。将记录器与处理器记录器相关联。Addhandler(控制台处理器)记录器。AddHandler(文件处理程序)# 6。定义filterflt=日志记录。文件处理程序(演示)# 7。关联记录器和过滤器记录器。关联处理器和过滤器控制台处理程序。添加过滤器(FLT)文件处理程序。添加菲利特尔(FLT) # 9。这是logger对象,库没有记录日志。logger . debug(“debug”)logger . info(“info”)logger . warning(“warning”)logger . error(“error”)logger . critical(“critical”)
表单的常见格式
属性格式描述asctime%(asctime)s日志产生的时间,默认格式为文件名%(文件名)s生成日志的程序名级别名%(级别名)s当前日志级别级别号%(级别号)s日志级别对应的数值行号%(行号)s日志所针对的代码行号消息%(消息)s具体的日志信息当然还有其它的格式,但是目前来说用不着,为简洁,故本文中没有出现,大家可以根据自己的需求进行查询。
三、配置文件的方式实现日志设置首先,我们需要先配置一个日志文件,命名为logging.config,如下所示:
[loggers]keys=root,applog[handlers]keys=控制台处理程序,文件处理程序[formatters]keys=简单格式化程序[logger _ root]level=DEBUGhandlers=控制台处理程序[logger _ applog]level=DEBUGhandlers=文件处理程序,控制台处理程序quaname=applog propagate=0[handler _ console handler]class=stream handler args=(sys。stdout),level=debug formatters=simple formatter[handler _ file handler]class=handlers .TimedRotatingFileHandlerargs=( applog。log , midnight ,1,0)level=debug formatters=simple formatter[formatter _ simple formatter]format=%(ASC time)S %(级别名)S %(文件名)S:%(行号)S %(消息)sdata fmt=% Y-% M-% d % H:% M:% S导入logging.config#导入该日志配置文件伐木。配置。文件配置(演示。log’)logger=logging。获取记录器( applog )#创建一个名为applog的Loggerlogger.debug(你学会了吗?)
案例下面,我们使用一个简单的案例来讲解一下日志具体是如何使用的!假设,我输入下面的语句:
name=djkint(name)如果单纯的运行以上这两条语句,很明显会出现以下错误:
但我们如果使用日志:
导入日志记录器=日志。get logger( applog )name= djk try:int(djk)catch异常为e:logger。例外情况(e)
可以看到,已经记录到日志中。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。