如何使用Python的logging模块
2015-06-16 00:00
656 查看
几个学习连接:
Python官方链接:
https://docs.python.org/3.4/library/logging.html?highlight=logging
翻译(不过是2.3版本的)
http://crazier9527.iteye.com/blog/290018
另外的一个人的总结:
http://blog.csdn.net/fxjtoday/article/details/6307285
最好理解,写的最好的:
http://bbs.chinaunix.net/thread-3590256-1-1.html
我的学习总结基于http://bbs.chinaunix.net/thread-3590256-1-1.html
以一个简单的日志系统为例子进行说明:
目标:创建一个日志系统,这个日志系统不仅能把信息输出到控制台,还可以输出到文件。
注意:
Logger.setLevel(lvl)
设置logger的level, level有以下几个级别:
NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
如果把looger的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出
思考题:
运行下面的日志系统,找出错误并改正。
答案:
通过查看错误信息,定位Key :levlename,得知关键字levelname写错了。
Python官方链接:
https://docs.python.org/3.4/library/logging.html?highlight=logging
翻译(不过是2.3版本的)
http://crazier9527.iteye.com/blog/290018
另外的一个人的总结:
http://blog.csdn.net/fxjtoday/article/details/6307285
最好理解,写的最好的:
http://bbs.chinaunix.net/thread-3590256-1-1.html
我的学习总结基于http://bbs.chinaunix.net/thread-3590256-1-1.html
以一个简单的日志系统为例子进行说明:
目标:创建一个日志系统,这个日志系统不仅能把信息输出到控制台,还可以输出到文件。
#import logging包 import logging #创建一个logger,getLogger的参数是logger的名字 logger=logging.getLogger('lylogger') #设置logger的等级,大于等于这个等级的信息会被输出,其他会被忽略 logger.setLevel(logging.DEBUG) #Handler是英文翻译为处理者,用于输出到不同的地方:Stream为控制台,File为文件 #以下创建的是输出到文件的handler,并把等级设为DEBUG fh=logging.FileHandler('test.log') fh.setLevel(logging.DEBUG) #以下创建的是输出到控制台的handler,并把等级设为DEBUG sh=logging.StreamHandler() sh.setLevel(logging.DEBUG) #下面指定了handler的信息输出格式,其中asctime,name,levelname,message都是logging的关键字 formatter=logging.Formatter('%(asctime)s - %(name)s - %(levelname)s - %(message)s') fh.setFormatter(formatter) sh.setFormatter(formatter) #把Handler加入到logger中,可理解为给处理者在logger中安排了职位 logger.addHandler(fh) logger.addHandler(sh) #记录一条为”Hello,Arsenal!”的info日志信息 logger.info('Hello,Arsenal!') print("process end!")
注意:
Logger.setLevel(lvl)
设置logger的level, level有以下几个级别:
NOTSET < DEBUG < INFO < WARNING < ERROR < CRITICAL
如果把looger的级别设置为INFO, 那么小于INFO级别的日志都不输出, 大于等于INFO级别的日志都输出
思考题:
运行下面的日志系统,找出错误并改正。
import logging logger=logging.getLogger('lylogger') logger.setLevel(logging.DEBUG) fh=logging.FileHandler('test.log') fh.setLevel(logging.DEBUG) sh=logging.StreamHandler() sh.setLevel(logging.DEBUG) formatter=logging.Formatter('%(asctime)s - %(name)s - %(levlename)s - %(message)s') fh.setFormatter(formatter) sh.setFormatter(formatter) logger.addHandler(fh) logger.addHandler(sh) logger.info('Hello,Arsenal!') print("process end!")
答案:
通过查看错误信息,定位Key :levlename,得知关键字levelname写错了。
相关文章推荐
- Python动态类型的学习---引用的理解
- Python3写爬虫(四)多线程实现数据爬取
- 垃圾邮件过滤器 python简单实现
- 下载并遍历 names.txt 文件,输出长度最长的回文人名。
- install and upgrade scrapy
- Scrapy的架构介绍
- Centos6 编译安装Python
- 使用Python生成Excel格式的图片
- 让Python文件也可以当bat文件运行
- [Python]推算数独
- Python中zip()函数用法举例
- Python中map()函数浅析
- Python在CAM软件Genesis2000中的应用
- 使用Shiboken为C++和Qt库创建Python绑定
- FREEBASIC 编译可被python调用的dll函数示例
- Python 七步捉虫法
- Python实现的基于ADB的Android远程工具