我这里有一个简单的记录器。我不希望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")
答案 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)