在log4j中,我們如何表示模式中的多個空格(如:\s+
)? 我有這樣一個模式%d{ISO8601}\t%t\t%m %n
,但當我通過電鋸和LogMX解析時,製表分離不可靠。我正在尋找更換多空間分隔而不是製表符分隔,但我找不到任何。Log4j模式,如何表示空格
任何幫助表示讚賞。謝謝。
在log4j中,我們如何表示模式中的多個空格(如:\s+
)? 我有這樣一個模式%d{ISO8601}\t%t\t%m %n
,但當我通過電鋸和LogMX解析時,製表分離不可靠。我正在尋找更換多空間分隔而不是製表符分隔,但我找不到任何。Log4j模式,如何表示空格
任何幫助表示讚賞。謝謝。
log4j中的佈局模式不是正則表達式模式,也不用於搜索字符串。正如它的名字所表示的那樣,它被用於佈置由log4j引發的消息。有了\ s +之類的東西,它會如何知道要打印多少空間?因此,如果在消息佈局中需要多個空格,則必須在模式中明確鍵入這些空格。
我不確定你真的想達到什麼,但你應該看看PatternLayout documentation的「格式修改器」的解釋。
我剛剛嘗試過您的Log4j模式,並且LogMX正確解析了新生成的日誌文件(對此模式使用Log4jPattern解析器)。你能解釋一下「我分析時tab分離不可靠嗎」?
儘管%m
和%n
之間的額外空白字符很奇怪:每個日誌消息都應以空白字符結尾才能正確解析。
PS:我同意@FrVaBe和@Lolo回答
電鋸使用log4j的 'LogFilePatternReceiver' 來處理日誌文件。
LogFilePatternReceiver有代碼合併多個空格,但代碼使用[] +而不是\ S +
我會考慮將其更改爲使用\ S +。