32

Python logging levels can be registered using logging.addLevelName. Is there a method to obtain the Python logging number from a level name?

4

2 回答 2

46

调用后addLevelName,结果级别将与所有标准级别完全相同:

>>> import logging
>>> logging.getLevelName(10)
'DEBUG'
>>> logging.getLevelName('DEBUG')
10
>>> logging.addLevelName(15, 'DEBUGGISH')
>>> logging.getLevelName(15)
'DEBUGGISH'
>>> logging.getLevelName('DEBUGGISH')
15

getLevelName可以将名称映射到数字以及将数字映射到名称的事实实际上并没有在 Python 2.x 中记录,该名称也没有给出任何暗示它应该......但快速查看源代码会显示它的工作原理。

于 2013-08-23T00:25:57.133 回答
0

如果您可以处理默认级别,则检查结果的类型是一个不错的解决方法。

int_level = logging.getLevelName(string_level)
  if type(int_level) != int:
    int_level = 20 # default to INFO
于 2022-01-01T16:29:27.610 回答