2013-05-28 18 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