繁体   English   中英

Python按级别记录格式

[英]Python logging formatting by level

我正在使用python的日志库,但我希望调试日志的格式与警告和错误日志不同。 这可能吗?

ETA:我希望警告和错误显示为:

%(levelname)s: %(message)s

但调试语句显示为

DEBUG: (only Brian cares about this) : %(message)s

我见过的所有其他问题都是改变格式,但一切都改变了。

首先, 仔细检查你是否真的需要这个。 具有不同记录格式的日志输出很容易被人和机器读取。
也许您实际需要的是不同日志目标(控制台与文件)的不同格式,这些格式也会有不同的详细程度(该文件将包含带有附加信息的调试日志)。

现在,方法是使用自定义Formatter

class MultiformatFormatter(logging.Formatter):
    def __init__(self,<args>):
        <...>
    def format(self,record):
        if record.levelno <= logging.DEBUG:
            s=<generate string one way>
        else:
            s=<generate string another way>
        return s
<...>
#for each handler that this should apply to
handler.setFormatter(MultiformatFormatter(<args>))

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM