发布时间:2019-09-26 11:36:15编辑:auto阅读(2041)
周海汉 /文
http://blog.csdn.net/ablo_zhou
2010.3.20
一、我写的log4py介绍
在写<汉字大全 >时,自己实现了简单的log系统:
输出
INFO.stdout.test.
2010-03-20T09:19:47.091774.[DEBUG].gloabal.debug information 调试.
2010-03-20T09:19:47.092294.[ERROR].gloabal.errorrrrrrrrrrrrrrr.
2010-03-20T09:19:47.092568.[DEBUG].gloabal.hello.
使用时,只需
import log4py
log = log4py.log4py('module name')
就可以用log.debug('debug')等几个级别打印log了。还可以定义是标准输出还是输出到文件,输出什么级别的。适用于小型的log系统。
该log4py的好处是使用起来简单,具有基本的级别定义,完全支持中文,log调试的输入除了字符串还支持列表,字典,数字等,可以打印exception信息。打印的格式为"时间到毫秒,模块名,log级别,log内容“。
但与系统的log比起来,缺乏强大的定制能力。
二、系统的logging模块
著名的log4j,log4cpp,以及python自带的logging其配置都相当复杂,使用灵活,可以通过配置文件自定义输出哪些模块,输出级别,输出格式,输出到文件和标准输出。并且兼顾多线程,性能等。
系统自带的logging模块,缺省就可以简单使用:
>>> import logging
>>> logging.debug('debug')
>>> logging.warn('debug')
WARNING:root:debug
>>> logging.debug('你好,调试')
>>> logging.warn('你好,调试')
WARNING:root:你好,调试
可见,在控制台,debug缺省是不打印的。
可以在编程时直接控制log的方式,也可以通过配置文件来进行。当然,配置文件更灵活。
2.1 logging的几个组件
Logger,Manager, Handler,Filter,Formatter,Configuration,Level
Logger 是应用中log的实例,Handler是输出的方式,如:
Filter是设置的模块,哪些需要记录,都可以配置。
Formatter是输出的格式,可以格式化时间,模块,级别。
Level是输出的级别,有如下级别:
DEBUG INFO WARNING ERROR CRITICAL
log4j等原来的版本最高级是FATAL,python的logging最高级别是CTITICAL,因为FATAL是系统崩溃的错误。
下面是一个使用配置文件写log的例子:
周海汉 #date:2010.3.20 #file testlog.py import logging import logging.config logconf = '/home/zhouhh/logconf.ini' logging.config.fileConfig(fname=logconf) log1 = logging.getLogger('modlog1') log1.debug('log1调试信息') log1.warn('log1警告信息') log1.error('log1 error错误信息') log2 = logging.getLogger('modlog1.modlog2') log2.debug('log2调试信息') log2.warn('log2警告信息') log2.error('log2 错误信息')
配置文件放在/home/zhouhh/logconf.ini
执行后,命令行看到输出:
文件python.log看到信息:
下面是一个比较完全的配置文件,从http://www.red-dove.com/python_logging.html拿过来的,功写logconf文件时参考:
3.参考:
http://www.red-dove.com/python_logging.html
http://www.python.org/dev/peps/pep-0282/
http://docs.python.org/library/logging.html#configuration
http://blog.donews.com/limodou/archive/2005/02/16/278699.aspx
上一篇: 一个例子走近 Python 的 Mixi
下一篇: python len isalpha 中
47750
46254
37136
34643
29233
25893
24762
19866
19428
17917
5720°
6324°
5843°
5892°
6993°
5831°
5851°
6365°
6319°
7684°