python的logging库
现在写程序是越来越不喜欢debuging了,因为太费事,基本上是以TDD为主。不过有时候TDD的反馈信息还是太粗糙了——只有通过或失败,最多就是发生异常时出来的一堆错误信息,很多时候是不够的。
正好最近在弄gevent,这玩意就是想debugging也不好弄,于是就试了一下python自带的logging库,虽然limodou老大早就写过,不过我觉得他那个用法还是不够方便,就看了一下帮助文档弄了个简单的。
先弄个配置模块设定logging的配置:
import logging logconf = {} logconf['filename'] = 'app.log' logconf['filemode'] = 'w' logconf['format'] = '%(asctime)s %(name)s %(levelname)s %(message)s' logconf['level'] = logging.NOTSET
然后,一般一个应用不会就只有一个py文件的,总是一个主程序文件和一堆小模块,这时候要分别加logger的时候就很方便:
首先在主py文件里加上:
import logging from logger import logconf logging.basicConfig(**logconf)
然后在每个模块py文件里加上:
import logging logger = logging.getLogger('py filename')
之后就可以在程序里使用:
logger.error("xxxxx %s" % xxx) logger.warning("xxxxx %s" % xxx) logger.info("xxxxx %s" % xxx) logger.debug("xxxxx %s" % xxx)
进行logging了。
如果模块带测试的话,也可以这样:
if __name__ == "__main__": import unittest import logging from logger import logconf logging.basicConfig(**logconf) # test code...
相当的方便。
推送到[go4pro.org]
这几天我也是正在用gevent重写之前scrapy上写的spider,
谢谢你分享的模块!!
也谢谢你分享的这个logging debug的方法。
– 疯象飙 at 2012-10-23T19:50:00+08:00
呵呵,不客气。
– 猛禽 at 2012-11-07T23:40:00+08:00