コンソールでログを印刷し、ファイルに書き込みたい。 my scala akkaロガーを使用したプロジェクトは、ここにあります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です。デフォルト-dispatcher-3] INFO akka.event.slf4j.Slf4jLogger-Slf4jLoggerが開始されました[ArteciateActorSystem-akka.actor。デフォルト-dispatcher-2] INFO models.AdminUserModels.AdminUserModelsActors.RegularAdminWriteMongoActor-受信したメッセージRegularAdminWriteInMongo
その後、他のprintlnステートメントが印刷されます。このメッセージの表示を停止する方法を教えてください。また、調査する前に尋ねられた質問を重複としてマークしないでください。問題を解決できません。
このエラーメッセージには、知っておく必要があるすべての情報が既に表示されています。メッセージで提供されているリンク( http://www.slf4j.org/codes.html#multiple_binding )は次のように述べています:
SLF4J APIは、一度に1つだけの基礎となるロギングフレームワークとバインドするように設計されています。クラスパスに複数のバインディングが存在する場合、SLF4Jはそれらのバインディングの場所をリストした警告を発します。
クラスパスには、SLF4Jの2つのバインディングが含まれています。
/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
クラスパスにバインディングが1つしかないことを確認してください。これにより、警告が再度表示されなくなります。
要約すると:slf4j-simpleを依存関係から削除するには、logback-classicで十分です。