python里的formatter_如何在Python logging.Formatter中对齐level字段

我目前正试图在我的Python记录器中正确对齐日志记录级别字段,以便输出如下:

[2011-10-14 13:47:51] [DEBUG] --- starting... (smtphandlers.py:96)

[2011-10-14 13:47:51] [INFO] --- first things first... (smtphandlers.py:97)

[2011-10-14 13:47:51] [WARNING] --- about to end... (smtphandlers.py:98)

[2011-10-14 13:47:51] [DEBUG] --- ending (smtphandlers.py:99)

看起来像:

[2011-10-14 13:47:51] [ DEBUG] --- starting... (smtphandlers.py:96)

[2011-10-14 13:47:51] [ INFO] --- first things first... (smtphandlers.py:97)

[2011-10-14 13:47:51] [ WARNING] --- about to end... (smtphandlers.py:98)

[2011-10-14 13:47:51] [ DEBUG] --- ending (smtphandlers.py:99)

第一个块的格式行是:

logging.Formatter("[%(asctime)s] [%(levelname)s] --- %(message)s (%(filename)s:%(lineno)s)", "%Y-%m-%d %H:%M:%S")

如果我知道最大级别长度是8(例如:CRITICAL),那么我将右对齐8个空格。

我试图弄清楚如何实现这一目标。以下错误是因为&#34;%(levelname)s&#34;是超过8个字符(替换不会发生,直到以后)。如果我使用&#34; {0:&gt; 20}&#34; .format&#34;%(levelname)s&#34;之类的东西,那么它可以工作,但这比我需要或想要的填充更多。< / p>logging.Formatter("[%(asctime)s] [" + "{0:>8}".format"%(levelname)s" + "] --- %(message)s (%(filename)s:%(lineno)s)", "%Y-%m-%d %H:%M:%S")

没有子类化Formatter,任何人都有办法实现这个目标吗?

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值