2
A
回答
6
看一看格式修飾符部分:
從http://logback.qos.ch/manual/layouts.html#formatModifiers:
格式修飾符
默認情況下,相關信息是原樣輸出。但是,藉助格式修改器,可以更改每個數據字段的最小和最大寬度以及理由。
...從最終
截斷由期之後追加一個減號是可能的。在這種情況下,如果最大字段寬度爲8,數據項的長度爲10個字符,則數據項的最後兩個字符將被丟棄。
0
如果你只需要截斷消息,Adrian的回答非常好。但在我的情況下,我想添加「... [truncated]」以防截斷消息。
我用a custom convertors機制用於此目的 - 通過執行以下步驟:
- 定義您的自定義轉換器:
public class LongMessagesConverter extends ClassicConverter {
private static final int MAX_FORMATTED_MESSAGE_LENGTH = 25600;
private static final String TRUNCATION_SUFFIX = "... [truncated]";
private static final int TRUNCATED_MESSAGE_SIZE =
TRUNCATION_SUFFIX.length() + MAX_FORMATTED_MESSAGE_LENGTH;
@Override
public String convert(ILoggingEvent event) {
String formattedMessage = event.getFormattedMessage();
if (formattedMessage == null ||
formattedMessage.length() < MAX_FORMATTED_MESSAGE_LENGTH) {
return formattedMessage;
}
return new StringBuilder(TRUNCATED_MESSAGE_SIZE)
.append(formattedMessage.substring(0, MAX_FORMATTED_MESSAGE_LENGTH))
.append(TRUNCATION_SUFFIX)
.toString();
}
}
- 添加到您的logback.xml的定義如下:
- 替換%MSG令牌%boundedMsg在郵件格式圖案
<conversionRule conversionWord="boundedMsg" converterClass="your.package.LongMessagesConverter"/>
相關問題
- 1. 將字符串截斷爲前n個字
- 2. 如何截斷一個字符串以至多有N個字符?
- 3. 截斷字符串中的最後n個字符使用.format()
- 4. 消息8152,字符串或二進制數據將被截斷
- 5. 如何在Python中修剪字符串的n個字符?
- 6. 使用javascript將div中的段落截斷爲100個字符
- 7. 修剪\ n,\ S,從JavaScript字符串
- 8. 如何將字符串修剪爲最後四個字符?
- 9. BufferedWriter將截斷字符串
- 10. AJAX將「00」字符串截斷爲「0」
- 11. 如何使用sed/awk將每個目錄截斷爲n個字符?
- 12. 修剪Char字段
- 13. x個字符後截斷字符串
- 14. 輸出被截斷爲100個字符
- 15. 數據截斷爲255個字符
- 16. 將段落分割爲160個字符片段以用於文本消息
- 17. Microsoft.WindowsAzure.Storage.Table.CloudTable.ExecuteBatchAsync()截斷消息
- 18. 截斷字符串
- 19. 截斷字符串
- 20. INT字段 - 字符串或二進制數據將被截斷
- 21. 修剪Log4J消息
- 22. PHP - 我如何修剪一個字符串爲四個字符?
- 23. 從一個字符中修剪拖曳零n個導軌
- 24. 修剪字符串
- 25. JavaScript修剪字符
- 26. 修剪字符串
- 27. 修剪字符串
- 28. 修剪字符串
- 29. 同步數據庫失敗,消息'字符串截斷...'
- 30. 自動修剪入站WCF消息中的字符串
噢,所以這是方括號是。我忽略了令牌代碼周圍的任何數字,認爲它與理由相關。 –
不知道爲什麼這是downvoted。這不是我。可能有人會在他們的迴應中舉個例子。 –
不用擔心。我可以看到他們的觀點。很高興你有答案:) –