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

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在Kotlin中使异步调用同步   让“Scala编程”junit示例在IntelliJ中工作的java问题   java Servlet侦听器未在ContextListener中设置属性   将Microsoft SQL Server数据库连接到我的Java项目   加载资源时出现java“需要注册工厂”异常   java如何使用POI检查excel中的重复记录?   java如何更改机器生成的代码   java如何确保重写的方法是同步的   用Spring编写Hibernate时的java XML奥秘   java管理mysql数据库中存储的用户权限   java如何运行。来自Javascript的jar方法   java我想在Web应用程序中进行身份验证&对桌面应用程序使用相同的凭据。我该怎么做?