Skip to main content
 首页 » 编程设计

python之记录 getLevelName 方法的实现

2025年05月04日18开发

根据文档 here这个答案here ,要求我的记录器的日志级别应该返回这个级别名称之一

_levelNames = { 
    CRITICAL : 'CRITICAL', 
    ERROR : 'ERROR', 
    WARNING : 'WARNING', 
    INFO : 'INFO', 
    DEBUG : 'DEBUG', 
    NOTSET : 'NOTSET', 
    'CRITICAL' : CRITICAL, 
    'ERROR' : ERROR, 
    'WARN' : WARNING, 
    'WARNING' : WARNING, 
    'INFO' : INFO, 
    'DEBUG' : DEBUG, 
    'NOTSET' : NOTSET, 
} 

但是当我调用

print logging.getLevelName("debug") 

我得到:

Level debug

所以我不能以舒适的方式做类似的事情:

logger.setLevel(foo) 

其中 fo 是我从其他方法获得的字符串...

有什么建议吗?

谢谢

请您参考如下方法:

这根本不是文档所说的。它说如果你传递一个映射到预定义日志记录级别之一的整数,你会得到一个很好打印的字符串版本:

>>> print(logging.getLevelName(logging.DEBUG)) 
DEBUG 

否则,如您所述,您将获得“级别 x”。

链接的答案明确指出从字符串到整数不是该函数的作用。