我想知道如何使用python' s记录包更改logRecoed中levelname的格式。
formatter = logging.Formatter('%(levelname)-8s %(message)s')
基本上,我想将任何日志名称替换为名称的第一个字母。例如,
INFO -> I,
WARNING -> W,
ERROR -> E,
等
答案 0 :(得分:21)
您可以使用精度字段设置最大字段宽度:
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!
请参阅String Formatting Operations documentation:
转化:
's'
含义:String(使用str()
转换任何Python对象) 备注 :( 6)
- [...]精度决定了所使用的最大字符数。
醇>
答案 1 :(得分:0)
如果您想要完全不同的级别名称,请使用logging.addLevelName
logging.addLevelName(logging.DEBUG, 'DETAILED')
logging.addLevelName(logging.INFO, 'GENERAL')