我想在控制台上打印日志,并将它们写在文件中。在我使用akka记录器的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")
这是我的代码的一部分
import akka.event.Logging
val log = Logging(context.system, this)
case RegularAdminWriteInMongo =>
log.debug("writing to mongo")
log.info("message received RegularAdminWriteInMongo")
当我在打印消息后的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语句,请帮助我如何停止显示此消息,同时请不要将我的问题标记为重复,因为在我查看它之前它已经被问到但是它没有解决我的问题..请不要帮助谢谢
答案 0 :(得分: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就足够了。