如何获得所有可能的日志级别数组?

2024-09-28 03:15:43 发布

您现在位置:Python中文网/ 问答频道 /正文

我希望得到所有可能的,当前的,在应用程序日志级别。我正在使用python2.7的标准日志库。你知道吗

大致如下:

logging.getLevels()
[DEBUG, INFO, WARNING, ERROR, CRITICAL]

我的用例是将它传递到argsparse中。我们在应用程序中定义了一些定制的日志级别,如果这些日志级别能够自动传播到argparse中就更好了。你知道吗

parser = argparse.ArgumentParser('our app')
parser.add_argument('-l', '--loglevel', type=str, help='Log level', 
choices=logging.getLevels(), default='WARNING')

我在the documentation中找不到这样的函数。我能找到的最接近的是getLevelName(int level),它将返回基于整数的字符串。你知道吗


Tags: debuginfo应用程序parser标准loggingargparseerror
1条回答
网友
1楼 · 发布于 2024-09-28 03:15:43

根据问题@ymbirtt linked,我得出以下结论: 它调用\u levelNames,然后遍历它,只得到字符串答案。你知道吗

[v for (k,v) in logging._levelNames.iteritems() if type(k) is int]

在python 3中:

[v for (k,v) in logging._levelNames.items() if type(k) is int]

在成品溶液中:

parser.add_argument('-l', ' loglevel', type=str, help='Log level', 
choices=[v for (k,v) in logging._levelNames.iteritems() if type(k) is int], 
default='WARNING')

编辑:交换的值和键保持顺序

相关问题 更多 >

    热门问题