2016-03-03 347 views
2

我試圖用012line替換~換行\n在logback.xml中使用replace(p){r, t}轉換。在logback.xml中使用替換(p){r,t}轉換替換'〜'

我有圖案佈局像

%p %c [%t] \\(%M:%L\\) - %replace(%msg){'~', '\n'} %nopex %n 

當我把\n,改變的logback它 'N'。但是如果我放'\\\n'那麼它保留兩個反斜槓,即它保留'\\\n'。在深入瞭解logback的源代碼之前,我想檢查是否有人試過/面對它?

對我來說,我們似乎無法使用替換方法在消息中添加換行符!

它增加了一個額外的轉義字符(\\)。

+0

我使用代碼格式編輯了你的代碼,請檢查'\\'是否仍然是你想要的 –

+0

你指的是什麼樣的正則表達式? – hek2mgl

+0

這是由logback使用的,所以應該是java的正則表達式模式。另外,在logback xml中,它接受'\ n'作爲換行符的正則表達式。 – Ronin

回答

1

可能的解決方法是使用正則表達式捕獲組: <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %replace(%msg){'(\n)','$1'}%n</pattern>

,但它仍然是不可能添加其他逃脫字符像一個標籤「\ t」

我開了一個問題https://jira.qos.ch/browse/LOGBACK-1261

+0

有沒有這方面的運氣?我想用\ r替換多行logstash – herm