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

Kia*_*ash 6 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")
Run Code Online (Sandbox Code Playgroud)

met*_*ter 7

查看日志记录模块文档,您将找到一个函数,可以将任意名称设置为日志记录级别.去那用吧.

>>> log.error("blah")
ERROR blah
>>> logging.addLevelName(logging.ERROR, 'error')
>>> log.error("blah")
error blah
Run Code Online (Sandbox Code Playgroud)


n61*_*007 5

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

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)
Run Code Online (Sandbox Code Playgroud)