2013-05-14 17 views
9

Come si sopprimono i messaggi di debug di SBT? Essi vengono registrati stdout così l'esecuzione di un progetto produce questo:Soppressione dell'output di debug sbt

$ cat src/main/scala/Hello.scala 
object Hello { 
    def main(args: Array[String]) { 
    Console.println("Hello sbt") 
    } 
} 

$ sbt run > out.txt 

$ cat out.txt 
[info] Set current project to hello (in build file:/home/synapse/projects/algs2/) 
[info] Running Hello 
Hello sbt 
[success] Total time: 1 s, completed May 14, 2013 11:39:23 PM 
+1

Hai mai trovato una soluzione? Anch'io sto lottando con questo. – dcb

+1

Possibile duplicato di [Come sopprimere informazioni e messaggi di successo in sbt?] (Http://stackoverflow.com/questions/9968300/how-to-suppress-info-and-success-messages-in-sbt) –

risposta

1

è possibile modificare il livello di registrazione come descritto here. Così si può cambiare il livello di registrazione Warn:

> run 
[info] Running Server 
Port is: null 
Embedded server running on port 8080. Press any key to stop. 

[success] Total time: 3 s, completed 14-May-2013 21:02:31 
> 
> set logLevel in run := Level.Warn 
... 
[info] Reapplying settings... 
[info] Set current project to server (in build file:/Users/me/myproject/) 
> run 
Port is: null 
Embedded server running on port 8080. Press any key to stop. 

e si ottiene più i messaggi di informazioni stampate per il comando run. È possibile aggiungere l'impostazione al file di build per renderlo permanente.

+7

Il build .sbt è costituito da una riga singola logLevel: = Level.Error e sbt esegue ancora output informazioni e messaggi di successo – synapse

6

Come menzionato in this reference anche collegato dall'altra risposta, è possibile modificare il livello di registrazione prima di arrivare alla console sbt.

"Per impostare il livello di registrazione prima dell'esecuzione di qualsiasi comando all'avvio, utilizzare -- prima del livello di registrazione."

Per esempio

$ sbt --error "runMain my.pckg.Main" 

Tuttavia è ancora ottenere il messaggio [success] registrato alla fine. Per ridurre il rumore, prendere in considerazione le tubazioni in grep -v.

+0

Il '[successo]' può essere rimosso aggiungendo 'showSuccess: = false' nel' build.sbt'. –

0

È possibile aggiungere le proprietà Livello registro alle proprietà Global SBT. Questo funziona per la versione 1.x SBT

File: ~/.sbt/1.0/global.sbt
logLevel := Level.Warn 

shellPrompt := { state => 
    "sbt (%s)> ".format(Project.extract(state).currentProject.id) 
}