什么是python中的详细级别?(每个级别之间的差异)

时间:2012-07-26 03:46:53

标签: python unit-testing logging

python中的详细级别是什么? 我在unittest中看到它。

在文档中,它只是说更高级别的详细程度,更多信息打印出来。但 更多意味着什么?也就是说,哪个消息将在更高级别打印出来,哪个不打印?

还可以在日志记录中找到详细信息。

我认为它们是不同的,因为记录详细级别在[0,50]中,而单位测试只是一个单位数。 我只想找出单位测试中每个详细级别之间的差异。

1 个答案:

答案 0 :(得分:1)

详细程度与日志记录有关。在单元测试中,您可以找到它来记录信息。

注意:使用级别作为常量名称(logging.INFOlogging.DEBUG而不是数字更为pythonic。

这些级别决定了您将获得的信息量。例如,将级别设置为ERROR以运行单元测试将仅显示单元测试失败的情况。将其设置为DEBUG将为您提供更多(实际上最多)信息,例如变量的值(在断言语句中等)。

如果您的程序具有不同级别的日志记录并且您希望用户看到不同级别的信息,则它会更有用。例如。通常您不希望用户看到内部细节,除了致命错误。因此用户将以FATAL或CRITICAL模式运行程序。但是当发生一些错误时,您将需要这些细节。在这种情况下,您将以调试模式运行该程序。您也可以使用这些级别发出自定义消息。例如,如果您提供与旧版本程序的兼容性,则可以使用logging.warn()对其进行警告,只有在日志记录级别为警告或更低时才会发出。{/ p>


DOCS:

与水平相关的东西

默认级别和级别名称,可以用任何正集替换  具有相应名称的值。有一个伪级别,NOTSET,它  只是作为用户定义级别的下限。处理程序和  使用NOTSET初始化记录器,以便他们甚至可以记录所有消息  在用户定义的级别。

CRITICAL = 50 
FATAL = CRITICAL
ERROR = 40 
WARNING = 30 
WARN = WARNING
INFO = 20 
DEBUG = 10 
NOTSET = 0