2016-03-03 73 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