2015-04-16 13 views
9

Desidero stampare i registri su console e scriverli in un file. Nel mio progetto Scala usando Akka logger ecco il mio build.sbtSLF4J: percorso classe contiene più binding SLF4J. messaggio stampato su console

libraryDependencies ++= Seq("org.mongodb" %% "casbah" % "2.8.0", 
          "org.slf4j" % "slf4j-simple" % "1.7.12", 
          "org.elasticsearch" % "elasticsearch" % "1.5.0", 
          "org.scalatest" %% "scalatest" % "2.2.1" % "test" 
         withSources() withJavadoc(), 
         "org.easymock" % "easymock" % "3.1" withSources() withJavadoc(), 
         "org.mockito" % "mockito-all" % "1.9.5", 
         "com.typesafe.akka" %% "akka-actor" % "2.3.6", 
         "ch.qos.logback" % "logback-classic" % "1.0.9", 
         "com.typesafe.akka" %% "akka-slf4j" % "2.3.9") 

e qui è una parte del mio codice

import akka.event.Logging 

val log = Logging(context.system, this) 
case RegularAdminWriteInMongo => 
    log.debug("writing to mongo") 
    log.info("message received RegularAdminWriteInMongo") 

quando ho eseguito il mio programma in SBT seguente messaggio stampato

SLF4J: percorso classe contiene più binding SLF4J. SLF4J: trovato associazione in [jar: file:/home/sara/.ivy2/cache/org.slf4j/slf4j - simple/jars/slf4j - simple - 1.7.12.jar!/Org/slf4j/impl/StaticLoggerBinder .class] SLF4J: associazione trovata in [jar: file: /home/sara/.ivy2/cache/ch.qos.logback/logback - classic/jars /logback - classico - 1.0.9.jar!/org/slf4j/impl/ StaticLoggerBinder.class] SLF4J: vedere http: //www.slf4j.org/codes.html#multiple_bindings per una spiegazione. SLF4J: L'associazione effettiva è di tipo [org.slf4j.impl.SimpleLoggerFactory] [ArteciateActorSystem - akka.actor. default -dispatcher - 3] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger avviato [ArteciateActorSystem - akka.actor. predefinita -dispatcher - 2] INFO models.AdminUserModels.AdminUserModelsActors.RegularAdminWriteMongoActor - messaggio ricevuto RegularAdminWriteInMongo

dopo che le mie altre istruzioni println sono stampati, Please help me come fermare la visualizzazione di questo messaggio, anche per favore non segna la mia domanda come duplicata come è stato chiesto prima ho guardato in esso, ma non risolve il mio problema .. per favore aiutatemi grazie

risposta

25

Il messaggio di errore già ti dice tutto ciò che è necessario sapere. Il collegamento fornito nel messaggio (http://www.slf4j.org/codes.html#multiple_binding) dice:

L'API SLF4J è progettata per il binding con uno e un solo framework di registrazione sottostante alla volta. Se è presente più di un'associazione sul percorso della classe, SLF4J emetterà un avviso, elencando la posizione di tali collegamenti.

classpath comprende due associazioni per SLF4J:

/home/sara/.ivy2/cache/org.slf4j/slf4j-simple/jars/slf4j-simple-1.7.12.jar

e

/home/sara/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.9.jar

Assicurarsi che sul percorso di classe sia presente solo un'associazione e che l'avviso non venga più visualizzato.

Per riassumere: Rimuovere slf4j-semplice dalle dipendenze, log-classico è sufficiente.