2013-05-28 20 views
5

Python logging格式字符串与语法我没有看到蟒蛇其它地方,像在python日志中有一个格式化程序截断字符串?

'format': '%(name)s' 

有什么办法截断使用格式化的错误信息,或者我需要覆盖的LogRecord类是什么?

这截断消息的部分(虽然我无法找到在normal places此功能的文档):

'format': '%(name).40s %(message).40s' 

我宁愿截断整个格式化的消息,如果可能的话(一个80列控制台,说)。

回答

10

这只是字符串格式的旧式样。 我想你可以使用“.L”,其中L是将字符串截断为任意长度的长度。例如:

'format': '%(name).5s' 

将截短长度为5个字符。

这一点很难找到,但他们实际上提到它在docs

精度是表示有多少位应小数点格式化的浮点值后会显示一个十进制数'f'和'F',或者用'g'或'G'格式化的浮点值的小数点前后。对于非数字类型,该字段指示最大字段大小 - 换句话说,将从字段内容中使用多少字符

+0

是的我想到了在编写问题并编辑以包含上面的建议(其中确实有效,对于消息中的个别占位符)。 – hobs

+0

所以我想我的问题没有任何意义。你可以传递给格式化器的是一个旧式的字符串格式器。在格式化程序规范中询问格式化格式的结果是没有意义的。 – hobs

+1

它看起来像你在Python 3.2+中有更多的控制权,因为你可以覆盖LogRecord Creation:http://plumberjack.blogspot.ca/2010/12/getting-more-control-over-logrecord.html – Gerrat