Playframework 2.0 logback:控制异常堆栈跟踪的格式

Playframework 2.0 logback:控制异常堆栈跟踪的格式,playframework-2.0,log4j,logback,Playframework 2.0,Log4j,Logback,我正在Scala/Play 2.2.0应用程序上使用Logback 1.0.13。 现有配置如下所示: <appender name="FILE" class="ch.qos.logback.core.FileAppender"> <file>${application.home}/logs/application.log</file> <encoder> <pattern>%date [%level][%

我正在Scala/Play 2.2.0应用程序上使用Logback 1.0.13。 现有配置如下所示:

  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>${application.home}/logs/application.log</file>
    <encoder>
     <pattern>%date [%level][%logger{1}][%thread{1}] %message%xException%n</pattern>
    </encoder>
  </appender>
我想在每一行前面放一些字符,如下所示:

play.api.Configuration$$anon$1: Configuration error[Cannot connect to database [default]]
>>> at play.api.Configuration$.play$api$Configuration$$configError(Configuration.scala:92) ~[play_2.10-2.2.0.jar:2.2.0]
>>> at play.api.Configuration.reportError(Configuration.scala:570) ~[play_2.10-2.2.0.jar:2.2.0]
>>> at play.api.db.BoneCPPlugin$$anonfun$onStart$1.apply(DB.scala:252) ~[play-jdbc_2.10-2.2.0.jar:2.2.0]

我发现像这样的方法很管用:

       <pattern>%date [%level][%logger{1}][%thread{1}] 
         %message%replace(%xException){"\n", "\\n"}%nopex%n</pattern>  
%date[%level][%logger{1}][%thread{1}]
%消息%replace(%xException){“\n”,“\\n”}%nopex%n

%替换机制在stacktrace文本上工作。您还需要%nopex来防止原始stacktrace再次出现;否则,Logback“很有帮助”会注意到您忽略了跟踪,并为您包含了跟踪。

我认为Logback本机没有这种类型的内容。您可能会编写一个自定义的logback appender并尝试实现同样的功能。有没有办法使这个平台独立?(Windows上有“\r\n”行分隔符)Logback有%n个转换字,但我不知道如何在replace方法中使用它。
       <pattern>%date [%level][%logger{1}][%thread{1}] 
         %message%replace(%xException){"\n", "\\n"}%nopex%n</pattern>