Skip to main content

为 DEBUG 不够时添加方便的日志记录级别。

项目描述

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

随着项目变得越来越大,logging.debug()成为应用程序正在执行的所有操作的垃圾场。这通常会变得如此嘈杂,以至于您无法真正理解要调试的内容。

尽管它通常在生产中被禁用,但有时您需要启用调试日志记录以 - 你知道 - 实际调试某些东西。但既然所有的东西都扔在那里,那太乱了。

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

如果添加一个新的日志级别就像 2 行代码一样简单呢?

砰!:

from logging_levels import add_log_level
add_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:
    raise Exception('Oops')
except:
    # Will include exception in log
    log.dang('Something broke.')

项目记录器

默认情况下,logging_levels 操作全局日志记录模块。对于你的项目——特别是如果你正在创建开源模块——你应该隔离你的日志模块。

from logging_levels import isolated_logging, log_exceptions

logging = isolated_logging(
    STUFF=8,
    THINGS=22,
    WTF=log_exceptions(1000),
)

logging.stuff('Log some stuff')
logging.wtf('Log some exceptions')

如果您在mylib/__init__.py中创建这个独立的日志记录模块,那么您可以轻松地在整个项目中使用它。

from mylib import logging
logging.error('Oops, broke something.')

标准

为了帮助每个人标准化相同的日志级别,这个库提供了一个函数来添加一些缺少的严重级别,这些级别由RFC-5424中的 syslog 协议定义。

这个库还引入了一些额外的调试级别和一个 SUPPRESSED级别,该级别旨在用于记录您可能想要记录的被抑制的异常,但在其他方面考虑处理。

使用函数add_standards添加由 logging-levels 提供的标准级别:

from logging_levels.standards import add_standards
import logging
add_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后的所有级别都将是(新级别以粗体显示):

等级

数值

紧急情况

100

警报

70

批判的

50

错误

40

抑制

31

警告

30

注意

25

信息

20

调试

10

详细

7

痕迹

5

没有设置

0

安装

pip install logging_levels

测试

安装开发要求:

pip install -r test.requirements.txt

安装项目:

pip install -e .

运行 pytest:

py.test tests

项目详情


下载文件

下载适用于您平台的文件。如果您不确定要选择哪个,请了解有关安装包的更多信息。

源分布

logging_levels-0.3.0.tar.gz (7.8 kB 查看哈希

已上传 source