如何为stream任务的日志成员设置SBT logLevel?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何为stream任务的日志成员设置SBT logLevel?相关的知识,希望对你有一定的参考价值。

你怎么设置logLevel when using streams.value.log in an SBT task

例如,如何将此任务的日志抑制为qazxsw poi日志?:

Warn

在任务的内部和外部我尝试了各种logLevel设置,例如:

lazy val mainRunner = taskKey[Seq[File]]("Runs a main method")
lazy val mainRunnerSetting = mainRunner := {


  val logger = streams.value.log

  (runner in Compile).value.run(
    mainClass = "com.me.Main",
    classpath = (dependencyClasspath in Compile).value.files,
    log = logger,
    options = Array()
  )
}

...但是当执行此任务时,它始终设置为logLevel in run in Compile := Level.Warn logLevel := Level.Warn logLevel in mainRunner := Level.Warn logLevel in streams := Level.Warn

答案

不知道你的问题在哪里,但这个Info内容可以正常设置任务的日志级别

build.sbt

其中val mainRunner = taskKey[Unit]("Print some log") val runner2 = taskKey[DummyRun]("hold dummy runner") lazy val root = project .in(file(".")) .settings( runner2 := new DummyRun, mainRunner := { val logger = streams.value.log logger.warn("Hello warn") logger.info("Hello info") logger.debug("Hello debug") runner2.value.run(logger) }, (logLevel in mainRunner) := Level.Warn ) DummyRun文件夹中的一个内容

project

输出:

import sbt.Logger

class DummyRun {
  def run(log: Logger): Unit = {
    log.warn("DummyRun warn")
    log.info("DummyRun info")
    log.debug("DummyRun debug")
  }
}

以上是关于如何为stream任务的日志成员设置SBT logLevel?的主要内容,如果未能解决你的问题,请参考以下文章

如何为 sbt 设置堆大小?

如何为 celery 任务日志指定文件路径?

如何为 sbt native packager 的 DockerPlugin 设置基础镜像?

如何为分子内部剧本任务设置no_log:true?

如何为 Kafka 生产者配置日志记录?

如何为异步任务设置名称?