在python日志中是否有截断字符串的格式化程序?

在python日志中是否有截断字符串的格式化程序?,python,logging,formatting,string-formatting,formatter,Python,Logging,Formatting,String Formatting,Formatter,使用python中其他地方看不到的语法格式化字符串,如 'format': '%(name)s' 是否有任何方法可以使用格式化程序截断错误消息,或者我需要为此重写LogRecord类 这会截断部分消息(尽管我在中找不到此功能的文档): 如果可能的话,我宁愿截断整个格式化的消息(比如对于80列的控制台)。这只是老式的字符串格式。 我想你可以用“.L”,其中L是长度,可以把字符串截断成你喜欢的长度。例如: 'format': '%(name).5s' 将长度截断为5个字符 这有点难找到,但

使用python中其他地方看不到的语法格式化字符串,如

 'format': '%(name)s'
是否有任何方法可以使用格式化程序截断错误消息,或者我需要为此重写LogRecord类

这会截断部分消息(尽管我在中找不到此功能的文档):


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

这只是老式的字符串格式。 我想你可以用“.L”,其中L是长度,可以把字符串截断成你喜欢的长度。例如:

'format': '%(name).5s'  
将长度截断为5个字符

这有点难找到,但事实上他们在

精度是一个十进制数字,指示对于使用“f”和“f”格式的浮点值,小数点后应显示多少位,对于使用“g”或“g”格式的浮点值,小数点前后应显示多少位。对于非数字类型,字段指示最大字段大小-换句话说,字段内容将使用多少个字符


是的,我在写了这个问题后就想到了这一点,并编辑了上面的建议(对于消息中的单个占位符,这确实有效)。所以我想我的问题没有什么意义。您可以传递给格式化程序的只是一个老式的字符串格式化程序。在格式化程序规范中询问格式化结果的格式化是没有意义的。看起来你在Python 3.2+中有更多的控制权,因为你可以覆盖日志记录的创建:没有办法从左边截断,是吗?@OrangeDog:有趣的问题,但我不这么认为。
'format': '%(name).5s'