python loggeru模块_python常用模块——logger模块
python的logging模块提供了通用的日志系统,熟练使用logging模块可以方便开发者开发第三方模块或者是自己的python应用。
python使用logging模块记录日志涉及四个主要的类:
logger:提供了应用程序可以直接使用的接口;
handler:将(logger创建的)日志记录发送到合适的目的地。
filter:提供一种优雅地方式决定一个日志记录是否发送到handler。
formatter:指定日志记录输出的具体格式。formatter的构造方法需要两个参数:消息的格式字符串和日期字符串,这两个参数都是可选的。
logging.getLogger([name]):返回一个logger对象,如果没有指定名字将返回root logger。
logging.basicConfig():用默认Formatter为日志系统建立一个StreamHandler,设置基础配置并加到root logger中
日志打印有5中模式:
logging.debug():调试模式,不是必须出现,但是如果有问题需要借助它的信息。
logging.info():信息模式,必须出现但是对程序的正常运行没有影响。
logging.warning():警告模式,不会造成程序的错误,但可能会出问题的时候打印。
logging.erroe():错误模式,程序出错了。
loggingcirtical():批判模式,程序崩溃了。
每个程序在输出信息之前都要获得一个Logger,Logger通常对应了程序的模块名。
LOG = logging.getLogger("chat.gui")
而核心模块可以这样:
LOG = logging.getLogger("chat.kernel")
Logger.setLevel(lel):指定最低的日志级别,低于lel的级别将会被忽略。debug是最低的内置级别,critical为最高。
Logger.addFilter(filt)、Logger.removeFilter(filt):添加或删除指定的filter.
Logger.addHandler(hdr)、Logger.removeHandler(hdr):增加或删除指定的handler
不同模式的运行级别:
>>> importlogging>>>logging.NOTSET
0>>>logging.DEBUG10
>>>logging.INFO20
>>>logging.WARNING30
>>>logging.ERROR40
>>>logging.CRITICAL50
NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
如果把looger的级别设置为INFO,那么小于INFO级别的日志不输出,大于等于INFO级别的日志都输出。
handler对象负责发送相关的信息到指定目的地。python的日志系统有多种Handler可以使用。有些Handler可以把信息输出到控制台,有些logger可以把信息输出到文件,还有些Handler可以把信息发送到网上,如果觉得不够用,还可以编写自己的Handler可以通过addHandler()方式添加多个handler
Handler.setLevel(lel):指定被处理的信息级别,低于lel级别的信息将被忽略。
Handler.setFormatter():给这个handler选择一个格式
Handler.addFilter(filt)、Handler.removeFilter:新增或删除一个filter对象。
每个Logger可以附加多个Handler,下面是几个常见的:
(1)logging.StreamHander:屏幕流对象
(2)logging.Filehandler:用于向一个文件输出日志信息
Formatters
Formatter对于设置日志信息最后的规则、结构和内容,默认的时间格式为%Y-%m-%d %H:%M:%S
importlogging
LOG=logging.getLogger() #获取一个实例
sh = logging.StreamHandler() #得到一个屏幕流发送台
LOG.addHandler(sh)#作用台关联到实例
LOG.warning('logger warning message')#调用实例答应信息
LOG.error('logger error message')#没有格式化,只有最原始的输出到屏幕
结果:
logger warning message #输出到屏幕
logger error message
下面只单纯输出到文件:
importlogging
LOG=logging.getLogger() #获取一个实例
console= logging.FileHandler('test.log') #控制台
formatter= logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
LOG.addHandler(console)
console.setFormatter(formatter) #绑定格式
LOG.warning('logger warning message')
LOG.error('logger error message')
结果:
2017-11-23 20:46:49,396 - root - WARNING -logger warning message2017-11-23 20:46:49,396 - root - ERROR - logger error message
综合实例:
importlogging
logger=logging.getLogger() #实例化一个logger对象#创建一个handler,用于写入日志文件
fh = logging.FileHandler('test.log') #将相关信息发送到目的地#再创建一个handler,用于输出到控制台
ch =logging.StreamHandler()
#指定文件,可以不指定
formatter= logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s')
fh.setFormatter(formatter)#文件句柄 绑 格式,
ch.setFormatter(formatter)
logger.setLevel(logging.INFO) 设置文件的级别,默认VWARNING
logger.addHandler(fh)#logger对象可以添加多个fh和ch对象(logger绑文件句柄)
logger.addHandler(ch)
logger.debug('logger debug message') #输出
logger.info('logger info message')
logger.warning('logger warning message')
logger.error('logger error message')
logger.critical('logger critical message')
python loggeru模块_python常用模块——logger模块相关推荐
- Python学习笔记:常用内建模块6 (urllib)
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:常用内建模块4:hmac
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- Python学习笔记:常用内建模块3:struct
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
- python必学的模块_Python常用的模块
模块和包 1.1模块介绍模块定义:一系列功能的集合体 模块使用: import导入模块 或者 from ... import... 导入模块 模块分类:内置模块 自定义模块 第三方模块 模块加载顺序: ...
- python dcf估值_Python 常用模块
本节内容 模块介绍 os 模块 sys 模块 time & datetime模块 random 模块 json & picle shutil 模块 shelve 模块 xml 模块 c ...
- python日历函数_Python—日历函数—日历模块的常用函数,calendar,常见
Python-日历函数-日历模块的常用函数,calendar,常见 发表时间:2020-07-07 日历函数 calendar模块中提供了非常多的函数来处理年历和日历. 例如:打印2020年7月份的日 ...
- python有哪几种模块_python常用模块有哪些?
本文和大家分享的主要是python中常用几大模块相关内容,一起来看看吧,希望对大家学习python有所帮助. 一.时间模块(time) 在学习模块之前我们所接触的时间模块 import time ti ...
- python常用运维模块_python常用模块之一
sys模块: sys模块是提供关于python本身的详细内在的信息的模块. sys.executable变量,它包含python解释器的路径 sys.platform变量,告诉我们现在处于什么操作系统 ...
- python画图的模块_python强大的绘图模块matplotlib示例讲解
Matplotlib 是 Python 的绘图库.作为程序员,经常需要进行绘图,在我自己的工作中,如果需要绘图,一般都是将数据导入到excel中,然后通过excel生成图表,这样操作起来还是比较繁琐的 ...
- Python学习笔记:常用内建模块1
前言 最近在学习深度学习,已经跑出了几个模型,但Pyhton的基础不够扎实,因此,开始补习Python了,大家都推荐廖雪峰的课程,因此,开始了学习,但光学有没有用,还要和大家讨论一下,因此,写下这些帖 ...
最新文章
- 让nginx支持php和path_info(新版本)
- wfs.js 多路视频 串屏 闪烁
- rpc核心实现和原理
- Java IO(二)——RandomAccessFile
- 和硕裁员4.5万真相调查:工人入不敷出无奈走人
- Jquery打叉怎么办
- [转]Messenger:使用消息的跨进程通信
- 家的N次方 经典台词
- MySQL带参数的存储过程小例子
- AlphaGo实力远超对手
- 曲折中前行的汉语编程
- 将中文姓名转为拼音英文名的一种实现
- 从appfuse开始学习Spring和Hibernate - (1)构建项目
- 有谁知道千千静听中的波形特效是怎么做的?
- 自适应滤波器 | 时域ALE算法
- 大部分Python库
- css中repeat用法,CSS background-repeat用法及代码示例
- 功能测试是什么?性能测试是什么?两者有什么区别?
- The 2020 ICPC Asia Macau Regional Contest
- 2012春节回乡见闻
热门文章
- phpmemcache
- c语言数组前缀和,关于最大子数组问题
- 华中数控机器人编程循环三次_华中数控:公司在数控技术上不断创新突破 在技术方面处于国内领先水平...
- oracle创建联机重做日志,oracle联机重做日志文件管理!
- vue 进入首页只弹一个弹框_vue.js实现只弹一次弹框
- 设计师交流分享社区|灵感并非凭空得来,积累在集设网
- 高质量的设计素材,有效提高工作效率
- 圣诞节美食聚会派对海报设计
- 免责协议怎么写_员工辞职时,HR得让他这样写离职申请!
- Mac精品软件分享第一期