码迷,mamicode.com
首页 > 编程语言 > 详细

Python–logging模块知多少

时间:2018-04-07 12:59:57      阅读:225      评论:0      收藏:0      [点我收藏+]

标签:fun   运行   text   文件名   post   sel   默认   sublime   工作人员   

我们在写程序的时候经常会打一些日志来帮助我们查找问题,这次学习一下logging模块,在python里面如何操作日志。
介绍一下logging模块,logging模块就是python里面用来操作日志的模块,logging模块中主要有4个类,分别负责不同的工作:

Logger 记录器,暴露了应用程序代码能直接使用的接口;简单点说就是一个创建一个办公室,让人在里头工作 

Handler 处理器,将(记录器产生的)日志记录发送至合适的目的地;这个简单点说就是办事的人,你可以指定是让在控制输出日志,还是在文件里面打印日志,常用的有4种: 

                StreamHandler 控制台输出 

                FileHandler 文件输出

                下面两种需要导入

                        handlers
                        from logging import handlers 

                        TimedRotatingFileHandler 按照时间自动分割日志文件 

                        RotatingFileHandler 按照大小自动分割日志文件,一旦达到指定的大小重新生成文件 

                Filter
过滤器,提供了更好的粒度控制,它可以决定输出哪些日志记录。(不常用) 

                Formatter
格式化器,指明了最终输出中日志记录的布局。指定输出日志的格式

 

 

日志级别 debug < info < warning < error < critical
设置了日志级别之后,会打印该级别以及比该级别高的所有日志,举个例子,如果日志级别是warning,那么就会打印warning、error、critical,这三个级别的日志,不会打印debug和info级别的,如果是debug,最低级别的日志,那么所有的日志都会打印。
上面的只是在控制台打印日志,并没有把日志写在文件里面,一般我们都会把日志写在日志文件里面,也很简单,只需要加个参数指定文件名就行了。

 

 

 

 

加上文件名之后就会发现控制台不会输出日志了,日志文件也产生了,那么如何既在控制台输出日志,也在文件中写入呢?

 

 

怎么实现呢,就得有个办公室,里面塞俩人,一个给负责往控制台输出日志,一个负责写文件,你把他俩往办公室一塞,他俩就能干活了。

 

这样logger这个日志办公室已经搞好了,咱们就可以直接用了,运行完发现文件也产生了,控制台也有日志。如果不设置日志级别的话,默认级别是waring。
下面我们自己封装一个类来使用logging模块,方便使用,默认加一些配置

 

 

 

 

 

 

Python–logging模块知多少

标签:fun   运行   text   文件名   post   sel   默认   sublime   工作人员   

原文地址:https://www.cnblogs.com/chunyanxu/p/8732706.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!