2014-03-24 40 views
1

在log4j中,我們如何表示模式中的多個空格(如:\s+)? 我有這樣一個模式%d{ISO8601}\t%t\t%m %n,但當我通過電鋸和LogMX解析時,製表分離不可靠。我正在尋找更換多空間分隔而不是製表符分隔,但我找不到任何。Log4j模式,如何表示空格

任何幫助表示讚賞。謝謝。

回答

2

log4j中的佈局模式不是正則表達式模式,也不用於搜索字符串。正如它的名字所表示的那樣,它被用於佈置由log4j引發的消息。有了\ s +之類的東西,它會如何知道要打印多少空間?因此,如果在消息佈局中需要多個空格,則必須在模式中明確鍵入這些空格。

0

我剛剛嘗試過您的Log4j模式,並且LogMX正確解析了新生成的日誌文件(對此模式使用Log4jPattern解析器)。你能解釋一下「我分析時tab分離不可靠嗎」

儘管%m%n之間的額外空白字符很奇怪:每個日誌消息都應以空白字符結尾才能正確解析。

PS:我同意@FrVaBe和@Lolo回答

0

電鋸使用log4j的 'LogFilePatternReceiver' 來處理日誌文件。

LogFilePatternReceiver有代碼合併多個空格,但代碼使用[] +而不是\ S +

我會考慮將其更改爲使用\ S +。