Scala的SBT中的默认日志文件在哪里?

时间:2013-01-19 21:48:15

标签: scala sbt

SBT document表示“运行命令时,会向文件发送更详细的日志记录输出而不是屏幕(默认情况下)。”

日志记录文件在哪里?

如果我在程序中使用日志记录功能,那么在程序完成后我在哪里可以找到这些日志?

1 个答案:

答案 0 :(得分:8)

如果您只是尝试使用兼容SLF4J的记录器登录文件(如评论中的链接所示),我建议您使用Logback进行记录,如here所述。

配置相当简单(对于简单的用例),包括发送日志输出的位置。链接到教程仅配置控制台appender,即记录的输出将被发送到控制台。您可以配置FileAppender(即将日志输出发送到文件),如下所示(在logback.xml中):

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
   <file>testFile.log</file>
   <append>true</append>
   <encoder>
     <pattern>%-4relative [%thread] %-5level %logger{35} - %msg%n</pattern>
   </encoder>
 </appender>

然后将<appender-ref ref="STDOUT" />从教程更改为<appender-ref ref="FILE" />。您应该真正了解logback / SLF4J文档,以便了解如何在需要时设置更复杂的日志记录配置,但这应该可以帮助您入门。

设置好所有内容后(例如,在build.sbt中添加logback作为依赖项并在logback.xml中创建src/main/resources配置),然后可以像这样调用记录器:

import org.slf4j.LoggerFactory
import ch.qos.logback.core.util.StatusPrinter
import ch.qos.logback.classic.LoggerContext

object LogTester extends App{
  def logger = LoggerFactory.getLogger("KDURLFilter")
  StatusPrinter.print((LoggerFactory.getILoggerFactory).asInstanceOf[LoggerContext])
  logger.info("vikas")
}

实施例

我创建了an example SBT project,您可以在其中看到正在运行的回溯配置。