Scala 不显示依赖项日志
我有一个Play项目,名为FrontEnd,它的依赖关系是另一个名为Logic的项目 在逻辑项目的Scala 不显示依赖项日志,scala,logging,playframework,slf4j,logback,Scala,Logging,Playframework,Slf4j,Logback,我有一个Play项目,名为FrontEnd,它的依赖关系是另一个名为Logic的项目 在逻辑项目的build.sbt文件中,我添加了slf4j和logback: name := "Logic" version := "1.0-SNAPSHOT" scalaVersion := "2.11.1" seq(bintrayResolverSettings:_*) libraryDependencies += "org.slf4j" % "slf4j-api" % "1.7.5" librar
build.sbt
文件中,我添加了slf4j和logback:
name := "Logic"
version := "1.0-SNAPSHOT"
scalaVersion := "2.11.1"
seq(bintrayResolverSettings:_*)
libraryDependencies += "org.slf4j" % "slf4j-api" % "1.7.5"
libraryDependencies += "ch.qos.logback" % "logback-classic" % "1.1.2"
我还在Logic项目中创建了一个日志特性
package logic.logging
import ch.qos.logback.classic.Logger
import org.slf4j.LoggerFactory
trait Logging {
protected val logger = LoggerFactory.getLogger(this.getClass().getSimpleName().stripSuffix("$"))
}
然后,我将Logic项目包含在前端项目中:
name := "Frontend"
version := "1.0"
scalaVersion := "2.11.1"
lazy val logicProj = RootProject(file("../logic"))
lazy val root = (project in file(".")).enablePlugins(PlayScala).dependsOn(logicProj)
最后,为了测试日志功能,我在前端内部创建了一个全局对象
import play.api.GlobalSettings
import play.api.Application
import play.api.Logger
import logic.logging.Logging
object Global extends GlobalSettings with Logging {
override def onStart(app: Application) = {
logger.info("Logic's logger: Application is started!!!")
Logger.info("FrontEnd's logger: Application is started!!!")
}
}
控制台上的输出为:
[info] application - FrontEnd's logger: Application is started!!!
[info] play - Application started (Dev)
换句话说,logic.logging.logging中的记录器无法登录到控制台。我想知道是否有人知道为什么以及如何修复它
PS:根据,它可能与多个绑定有关,即逻辑和前端播放库中的logback。但是,我不想从逻辑中删除logback,因为项目本身是一个独立的控制台应用程序,需要将输出记录到控制台
编辑:即使从Logic的
build.sbt
中删除libraryDependencies+=“ch.qos.logback”%”logback classic“%”1.1.2“
,问题仍然存在。最后,我发现日志没有显示,因为它没有“注册”到Play的日志配置中。可以通过在application logger.xml
文件的configuration
标记中添加以下行来修复此问题:
<logger name="logger" level="INFO" />
其工作原理如下:
[info] logger.Global - Logic's logger: Application is started!!!
[info] application - FrontEnd's logger: Application is started!!!
[info] logger.Global - Logic's logger: Application is started!!!
[info] application - FrontEnd's logger: Application is started!!!