Scala 如何从sbt输出slf4j日志消息?
我目前正在写一个sbt插件。我定义的任务使用的是与sbt无关且我不想更改的库中的功能。这些库使用slf4j进行日志记录。我希望日志输出显示在sbt控制台中,就像我使用了Scala 如何从sbt输出slf4j日志消息?,scala,logging,sbt,slf4j,Scala,Logging,Sbt,Slf4j,我目前正在写一个sbt插件。我定义的任务使用的是与sbt无关且我不想更改的库中的功能。这些库使用slf4j进行日志记录。我希望日志输出显示在sbt控制台中,就像我使用了streams.value.log,这样我就可以。G以常见的sbt方式打开和关闭调试日志记录,如setsometask/logLevel:=Level.debug。有办法做到这一点吗 看来sbt-slf4j应该能解决我的问题: 但我没能让它工作。我的project/build.sbt如下所示: libraryDependenci
streams.value.log
,这样我就可以。G以常见的sbt方式打开和关闭调试日志记录,如setsometask/logLevel:=Level.debug
。有办法做到这一点吗
看来sbt-slf4j应该能解决我的问题:
但我没能让它工作。我的project/build.sbt
如下所示:
libraryDependencies+=“com.eltimn”%%“sbt-slf4j”%%“1.0.4”
解析器+=解析器.bintrayRepo(“eltimn”、“maven”)
和build.sbt
类似:
import org.slf4j.LoggerFactory
导入org.slf4j.impl.sbtstaticlockerbinder
val foo=任务键[单位](“foobar”)
傅:={
sbtstaticlockerbinder.sbtLogger=streams.value.log
//符号实现,实际实现存在于库中
val logger=LoggerFactory.getLogger(“foobar”)
logger.warn(“你好!”)
}
但是运行foo
不会导致打印警告。如果我将其更改为LoggerFactory.getLogger(streams.value.log.name)
,则会打印一条警告,但这不是一个选项,因为代码仍然存在于库中
有什么好办法解决这个问题吗