如何将级别名称设为小写?

时间:2014-03-10 23:38:08

标签: python logging

我这里有一个简单的记录器。我不希望levelname是全部大写,而是小写(例如,info而不是默认的INFO)。我该如何解决?

import logging

log = logging.getLogger(__name__)

ch = logging.StreamHandler()
ch.setLevel(logging.ERROR)
chformatter = logging.Formatter('%(levelname)s %(message)s')
ch.setFormatter(chformatter)

log.addHandler(ch)

log.error("blah")

2 个答案:

答案 0 :(得分:7)

查看documentation for the logging module,您会发现一个函数,可以将任意名称设置为日志记录级别。去吧。

>>> log.error("blah")
ERROR blah
>>> logging.addLevelName(logging.ERROR, 'error')
>>> log.error("blah")
error blah

答案 1 :(得分:2)

您可以制作自己的格式化程序:

class MyFormatter(logging.Formatter):
    def format(self, record):
        record.levelname = record.levelname.lower()
        return logging.Formatter.format(self, record)

chformatter = MyFormatter('%(levelname)s %(message)s')
ch.setFormatter(chformatter)