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

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 JPA。Eclipselink没有为mySQL提供密码,但它应该提供   我的Servlet和@FormDataParam存在java问题   java将什么作为上下文参数传递到文件I/O方法中?   如果两个值相同,java无法找到其中一个单选按钮   java在变量和方法名中使用下划线   JavaSpringMVC单线程安全?   klazz类的java Arraylist(反射Api)   java如何在数字字符串中查找最频繁的数字?   JavaAPI设计:使数据更易于阅读与强制更多API调用   JavaHadoopMapReduceforGoogleWebGraph   java无法启动gauge API:Runner意外退出   java如何在bluemix上使用ibm工作负载调度器?   拉取一年中某一周特定日期的所有日期   java为什么是我的角节点。js应用程序将图像上传到S3� 邮递员正确上传时的符号?   在不使用任何第三方jar的情况下将文件从本地传输到linux系统(java代码)   java将现有文件夹复制到Eclipse工作区中新创建的项目中   Java中的regex RegExp帮助   当使用“系统”外观时,Java组合框setSelectedItem会出现故障   JavaASM:在类的方法中获取局部变量名和值