Python 更改日志记录中的levelname格式

Python 更改日志记录中的levelname格式,python,logging,Python,Logging,我想知道如何使用python的日志包更改logrecod中levelname的格式 formatter = logging.Formatter('%(levelname)-8s %(message)s') 基本上,我想将任何日志名替换为名称的第一个字母。比如说, INFO -> I, WARNING -> W, ERROR -> E, 等等。您可以使用精度字段设置最大字段宽度: formatter = logging.Formatter('%(levelname).1

我想知道如何使用python的日志包更改logrecod中levelname的格式

formatter = logging.Formatter('%(levelname)-8s %(message)s')
基本上,我想将任何日志名替换为名称的第一个字母。比如说,

INFO -> I, 
WARNING -> W, 
ERROR -> E, 
等等。

您可以使用精度字段设置最大字段宽度:

formatter = logging.Formatter('%(levelname).1s %(message)s')
.1
将字段宽度设置为最多一个字符,将级别截断为第一个字符:

>>> for level in ('CRITICAL', 'ERROR', 'INFO', 'WARNING', 'DEBUG'):
...     print '%(level)-.1s %(message)s' % {'level': level, 'message': 'Hello world!'}
... 
C Hello world!
E Hello world!
I Hello world!
W Hello world!
D Hello world!
见:

转换:
's'

含义:字符串(使用
str()
转换任何Python对象)。
注:(6)

  • […]精度决定使用的最大字符数

  • 如果需要完全不同的levelname,请使用logging.addLevelName

    logging.addLevelName(logging.DEBUG, 'DETAILED')
    logging.addLevelName(logging.INFO, 'GENERAL')
    

    美好的我不知道。1会这样做。令人惊叹的!谢谢使用此选项将
    警告
    缩短为
    警告
    ,以保持日志对齐。