如何防止logback / slf4j解析新的行字符

我正在使用SLF4j的logback登录我的应用程序。 我有一个包含新行字符的字符串。 它是字符串值的一部分,但不表示新行。 当我打印字符串时,logback将其打印在一个新行中。 怎么预防这个?

码:

String str = "george\nmason" logger.info(str); 

回归模式:

 [%d{dd MMM yyyy HH:mm:ss,SSS}] [%5p] [%X{sid}] [%-20C{0} %25M]:[%-4L] - %m%n 

预期:

 [19 Feb 2015 20:19:27] [ INFO] [] [myClass myMethod]:[52 ] - george\nmason 

实际产量:

 [19 Feb 2015 20:19:27] [ INFO] [] [myClass myMethod]:[52 ] - george mason 

您可以为模式添加replace选项,以便使用其他内容替换消息中的任何换行符,例如空格:

 %replace(%m){'\n', ' '} 

在您的情况下,您想要用\\n替换\n \\n

 [%d{dd MMM yyyy HH:mm:ss,SSS}] [%5p] [%X{sid}] [%-20C{0} %25M]:[%-4L] - %replace(%m){'\n', '\\n'}%n