当调试还不够时,添加方便的日志记录级别。

logging_levels的Python项目详细描述


https://travis-ci.org/six8/logging-levels.png

随着项目越来越大,logging.debug()成为转储 为你的应用程序所做的一切奠定基础。这通常 变得如此吵闹以至于你无法真正理解自己 正在尝试调试。

虽然它通常在生产中被禁用,但有时您需要 启用调试日志以实际调试某些内容。但是 既然everything都扔在那里了,那就太乱了 通过。

为了帮助解决这个问题,您可以添加额外的日志级别。然而,很少 当它们被添加到项目中时,它们通常是不完整的。 有时你去其他项目,他们不在那里。所以你 必须查找如何添加它们,但通常放弃并坚持 在logging.debug()中转储某些内容,因为稍后将删除它 –对吧?

如果添加一个新的日志级别像两行代码那么简单呢?

砰!:

fromlogging_levelsimportadd_log_leveladd_log_level(VERBOSE=9)

几个新的日志级别怎么样?:

add_log_level(VERBOSE=9,TRACE=8,NOISE=5,IMPORTANT=100)

现在与他们一起登录:

log.verbose("I've said too much")log.trace("But I haven't said enough")log.noise("That's me in the corner")log.important("That's me in the spotlight")

想隐式地记录异常和您喜欢的新日志级别吗?:

add_log_level(DANG=90,exceptions=True)try:raiseException('Oops')except:# Will include exception in loglog.dang('Something broke.')

项目记录员

通过defualt,日志级别操作全局日志模块。 对于您的项目-特别是如果您正在创建开放源码 模块-您应该隔离日志模块。

fromlogging_levelsimportisolated_logging,log_exceptionslogging=isolated_logging(STUFF=8,THINGS=22,WTF=log_exceptions(1000),)logging.stuff('Log some stuff')logging.wtf('Log some exceptions')

如果您创建这个独立的日志模块 在mylib/__init__.py中,您可以在整个 容易投射。

frommylibimportlogginglogging.error('Oops, broke something.')

标准

为了帮助每个人在相同的日志级别上实现标准化,这个库 提供一个函数来添加 RFC-5424中的syslog协议。

这个库还引入了一些额外的调试级别和 SUPPRESSEDlevel,用于禁止日志记录 您可能要记录的异常,但在其他情况下会考虑处理。

使用函数add_standards添加提供的标准级别 按记录级别:

fromlogging_levels.standardsimportadd_standardsimportloggingadd_standards(logging)log.emergency('This aggression will not stand, man.')log.alert('Oh no! Something happened!')log.notice('FYI this other thing happened.')log.verbose('Debug, but so much more')log.trace('Log every -- single -- detail')log.suppressed('Warn a suppressed exception')

使用add_standards后的所有级别都是(新级别用粗体显示):

LevelNumeric Value
EMERGENCY100
ALERT70
CRITICAL50
ERROR40
SUPPRESSED31
WARNING30
NOTICE25
INFO20
DEBUG10
VERBOSE7
TRACE5
NOTSET0

安装

pip install logging_levels

测试

安装开发要求:

pip install -r test.requirements.txt

安装项目:

pip install -e .

运行pytest:

py.test tests

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java动态地将圆添加到Arraylist   什么是好的“错误检查”模式(Java)?   java是我们可以在应用程序中使用的云服务,它需要存储最大大小为5MB的小文件   JavaGooglePhotosAPI是静态内容上传项目的永久url   java AES密钥存储   java文件正在下载,但没有任何内容   每次循环迭代和threadsleep的java日志记录都是不好的做法?   java不会切换到另一个。单击submit时使用jsp。春季mvc   java我很难从我的maclaurin系列中获得sin x的准确输出   java使用类似的<Object>?   需要java Hibernate映射吗?   java如何在https和客户端证书请求后面生成web服务代理   java如何通过注释有条件地使用自定义JsonSerializer   java如何在html页面和Restful WebResource方法之间实现JaxB?   读取文件Libgdx Android时发生java错误   java如何在处理主活动之前从另一个方法中获取值?   java在一个SQLquery中使用多个语句,还是使用批处理?