我的sbt基于这个很棒的答案进行设置:Confused how to setup a multi project sbt project
所以Dependencies.scala
添加了:
val scalaLogging = "com.typesafe.scala-logging" %% "scala-logging-slf4j" % scalaLoggingVersion
//val logbackCore = "ch.qos.logback" % "logback-core" % logbackVersion
val logbackClassic = "ch.qos.logback" % "logback-classic" % logbackVersion
(已注释掉logbackCore
- 我甚至需要吗?)
已将scalaLogging
和logbackClassic
添加到commonDependencies(已移除其他库):
val commonDependencies: Seq[ModuleID] = Seq(
scalaLogging,
//slf4j,
//logbackCore,
logbackClassic
)
同样在/services
sbt模块中,将其添加到UserServiceImpl
类:
import com.typesafe.scalalogging.slf4j.LazyLogging
class UserServiceImpl (.....) extends SecurityService with LazyLogging {
def show(.....) {
logger.trace("UserService.show called")
logger.debug("UserService.show called")
}
}
此外,在/ services / resources中,添加了logback.xml
:
<configuration>
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%logger:%line - %msg%n</pattern>
</encoder>
</appender>
<root level="debug">
<appender-ref ref="STDOUT" />
</root>
</configuration>
现在当我的播放应用程序启动时,sbt run
时没有看到日志,我放入控制器等常规播放日志就好了。
为了更好地衡量,还在logback.xml
文件夹中删除了/conf
,但仍然没有输出。
我不确定我在这里做错了什么,希望有人可以为我澄清事情。
注意:我正在使用sbt来编译我的项目,但我在IntelliJ中进行了编辑,出于某种原因,IntelliJ没有正确地拾取scala-logging。我的导入以红色突出显示,我在我的UserService上使用的LazyLogging trait关键字&#39;使用LazyLogging&#39;是红色的。我的实际日志语句也像logger.debug这样的单词&#39; logger&#39;是红色的。它没有&#39;似乎解决了这些问题,但是编译得很好。
答案 0 :(得分:1)
要使回归正常工作,您必须修改application.conf
并注释掉所有记录器设置:logger.root
,logger.play
,logger.application
等。
然后将logback配置放在application-logger.xml
目录中名为 /conf
的文件中(名称很重要)。