SLF4J:类路径包含多个SLF4J绑定.消息在控制台上打印

swa*_*eed 10 logging logback slf4j sbt akka

我想在控制台上打印日志,并将它们写在文件中.在我使用akka loggers的scala项目中,这是我的build.sbt

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")
Run Code Online (Sandbox Code Playgroud)

这是我的代码的一部分

import akka.event.Logging

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

当我在sbt中运行我的程序后打印消息

SLF4J:类路径包含多个SLF4J绑定.SLF4J:在[jar:file:/ home/sara/.ivy2/cache/org.slf4j/slf4j - simple/jars/slf4j - simple - 1.7.12.jar!/ org/slf4j/impl/StaticLoggerBinder.class中找到绑定] SLF4J:在[jar:file:/ home/sara/.ivy2/cache/ch.qos.logback/logback - classic/jars/logback - classic - 1.0.9.jar!/ org/slf4j/impl /中找到绑定StaticLoggerBinder.class] SLF4J:有关说明,请参见http://www.slf4j.org/codes.html#multiple_bindings.SLF4J:实际绑定的类型为[org.slf4j.impl.SimpleLoggerFactory] ​​[ArteciateActorSystem - akka.actor.default -dispatcher - 3] INFO akka.event.slf4j.Slf4jLogger - Slf4jLogger启动[ArteciateActorSystem - akka.actor.default -dispatcher - 2] INFO models.AdminUserModels.AdminUserModelsActors.RegularAdminWriteMongoActor - 收到的消息RegularAdminWriteInMongo

之后我的其他println语句被打印出来,请帮助我如何停止显示此消息,同时请不要将我的问题标记为重复,因为在我调查之前它已被问到但是它并没有解决我的问题..请帮助谢谢

she*_*tem 27

错误消息已经告诉您需要知道的一切.消息中提供的链接(http://www.slf4j.org/codes.html#multiple_binding)说:

SLF4J API旨在一次只与一个基础日志框架绑定.如果类路径上存在多个绑定,SLF4J将发出警告,列出这些绑定的位置.

您的类路径包含两个SLF4J绑定:

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

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

确保类路径上只有一个绑定,并且不会再显示警告.

总结一下:从依赖项中删除slf4j-simple,logback-classic就足够了.