12

SBT 文档说“运行命令时,将更详细的日志记录输出发送到文件而不是屏幕(默认情况下)。......”

日志文件在哪里?

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

4

1 回答 1

10

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

配置起来相当简单(对于简单的用例),包括将日志输出发送到哪里。链接到的教程只配置了一个控制台追加器,即将记录的输出发送到控制台。您可以像这样(在您的 )中配置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 文档,以便在需要时弄清楚如何设置更复杂的日志记录配置,但这应该可以帮助你入门。

设置完所有内容(即添加 logback 作为依赖项并在 中build.sbt创建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")
}

例子

我创建了一个示例 SBT 项目 ,您可以在其中看到正在运行的 logback 配置。

于 2013-01-19T23:00:50.707 回答