You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将Scala-Sbt应用程序输出重定向至文件?

解决SBT应用日志重定向到文件的问题

方案1:同时捕获标准输出与标准错误

默认>仅重定向标准输出(stdout),但应用运行日志常输出到标准错误(stderr),需同时捕获两者:

sbt "run 9001" > logFile 2>&1

2>&1表示将标准错误(文件描述符2)重定向至标准输出(文件描述符1),确保所有日志写入目标文件。

方案2:关闭SBT颜色输出并重定向

日志中的[35m类ANSI控制码是SBT的颜色标记,可通过参数关闭后再重定向,提升日志可读性:

sbt -Dsbt.log.noformat=true "run 9001" > logFile 2>&1

方案3:通过应用日志框架配置输出到文件

若应用使用SLF4J、Logback或Log4j等日志框架,直接修改配置文件指定文件输出更灵活。以Logback为例,修改logback.xml:

<appender name="FILE" class="ch.qos.logback.core.FileAppender">
  <file>./app-run.log</file>
  <encoder>
    <pattern>%d{yyyy-MM-dd HH:mm:ss} [%thread] %-5level %logger{36} - %msg%n</pattern>
  </encoder>
</appender>

<root level="info">
  <appender-ref ref="FILE" />
</root>

这种方式不受SBT控制台输出影响,能精准控制日志格式与存储路径。

方案4:使用runMain指定主类运行

若明确应用主类路径,用runMain替代run可减少SBT自身日志与应用日志的混淆:

sbt "runMain com.your.app.MainClass 9001" > logFile 2>&1

内容的提问来源于stack exchange,提问作者ajits089

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.17 06:55:11