Scalatra である種のロギングを機能させようとしています。ここの指示に従っただけですhttp://www.scalatra.org/2.2/guides/monitoring/logging.html . container:start
で起動した後に実行するとsbt
、コンソールに次のように表示されます。正確には正しくない複数のメッセージです。
私が知る限り、私は を使用しようとしていますが、後でlogback
何かがロードされています。log4j
それは私が期待している動作ではありませんが、私が見ているものです。
複数のバインディングから log4j 警告まで (このアプリのどこにも log4j を追加しませんでした):
SLF4J: Class path contains multiple SLF4J bindings.
SLF4J: Found binding in [jar:file:/Users/foo/.ivy2/cache/org.slf4j/slf4j-log4j12/jars/slf4j-log4j12-1.6.3.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: Found binding in [jar:file:/Users/foo/.ivy2/cache/ch.qos.logback/logback-classic/jars/logback-classic-1.0.11.jar!/org/slf4j/impl/StaticLoggerBinder.class]
SLF4J: See http://www.slf4j.org/codes.html#multiple_bindings for an explanation.
SLF4J: Actual binding is of type [org.slf4j.impl.Log4jLoggerFactory]
Null identity service, trying login service: null
Finding identity service: null
[info] started o.e.j.w.WebAppContext{/v1,[file:/Volumes/Macintosh%20HD%202/Dropbox/Projects/scalatra-test/src/main/webapp/]}
[info] started o.e.j.w.WebAppContext{/v1,[file:/Volumes/Macintosh%20HD%202/Dropbox/Projects/scalatra-test/src/main/webapp/]}
log4j:WARN No appenders could be found for logger (org.scalatra.servlet.ScalatraListener).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.
ここで何が問題なのか完全にはわかりません。私はただできるようにしたい:
- いくつかのデバッグ ステートメントを STDOUT に記録します (sbt を開始したタームに行くと仮定します)。
- いくつかのデバッグステートメントをファイルに記録して、簡単に追跡できるようにします
私の依存関係は、build.scala で次のようになります。
libraryDependencies ++= Seq(
"org.scalatra" %% "scalatra" % ScalatraVersion,
"org.scalatra" %% "scalatra-scalate" % ScalatraVersion,
"org.scalatra" %% "scalatra-specs2" % ScalatraVersion % "test",
"ch.qos.logback" % "logback-classic" % "1.0.6" % "runtime",
"org.eclipse.jetty" % "jetty-webapp" % "8.1.8.v20121106" % "container",
"org.eclipse.jetty.orbit" % "javax.servlet" % "3.0.0.v201112011016" % "container;provided;test" artifacts (Artifact("javax.servlet", "jar", "jar")),
"org.mongodb" %% "casbah" % "2.6.1",
"org.scalatra" %% "scalatra-json" % "2.2.1",
"org.json4s" %% "json4s-native" % "3.2.4",
//"org.json4s" %% "json4s-jackson" % "3.2.4",
"org.scalatra" %% "scalatra-swagger" % "2.2.1",
"commons-codec" % "commons-codec" % "1.8"
),
ここで何かがlog4jも必要としていて、それがlogbackをオーバーライドしている可能性はありますか?
このプロジェクトから log4j を完全に除外するように sbt に指示することも可能ですか? 依存関係として必要なものを見つけることができませんが、代わりに logback を使用する必要があります。