2014-04-14 15 views
6

Sto utilizzando Logback 1.0.13 su un'applicazione Scala/Play 2.2.0. config esistente assomiglia:logback: controllo della formattazione delle eccezioni stacktraces

<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> 

sto cercando se c'è un modo per configurarlo in modo linee eccezione traceback hanno un separatore personalizzato. Invece di

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] 

mi piacerebbe mettere alcuni caratteri davanti a ogni riga come questa:

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] 
+0

Non penso che il logback abbia qualcosa di questo tipo in modo nativo. Probabilmente potresti scrivere un appender di logback personalizzato e provare ad ottenere lo stesso risultato. – Aritra

risposta

9

ho capito qualcosa di simile a questo funziona:

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

L'% sostituire meccanismo funziona su un testo stacktrace. Hai anche bisogno di% nopex per impedire che lo stacktrace raw venga nuovamente visualizzato; in caso contrario, Logback "utilmente" nota che hai omesso la traccia e la include per te.

+0

Esiste un modo per rendere questa piattaforma indipendente? (c'è il separatore di riga "\ r \ n" su Windows) Il logback ha una parola di conversione% n, ma non ho idea di come utilizzarlo nel metodo di sostituzione. –