【问题标题】:log4j.properties Ignored when running sbt test运行 sbt 测试时忽略 log4j.properties
【发布时间】:2016-09-14 01:28:46
【问题描述】:

我正在使用 SBT 进行构建的 Scala 中的 Spark 应用程序。 Spark 创建了非常详细的日志记录,我想在测试运行时忽略它。

我在 src/test/resources 下设置了一个 log4j.properties 文件,以及 src/main/resources 下的内容如下:

# Set everything to be logged to the console
log4j.rootCategory=INFO, console
log4j.appender.console=org.apache.log4j.ConsoleAppender
log4j.appender.console.layout=org.apache.log4j.PatternLayout
log4j.appender.console.layout.ConversionPattern=%d{yy/MM/dd HH:mm:ss} %p %c{10}: %m%n

# Settings to quiet third party logs that are too verbose
log4j.logger.akka=ERROR
log4j.logger.Remoting=ERROR
log4j.logger.org.apache.spark=ERROR
log4j.logger.org.eclipse.jetty=ERROR

使用sbt test 运行应用程序或运行完整的应用程序时,它可以正常运行,但仍会记录与 Spark 相关的所有 INFO 级别语句

文件配置中是否缺少某些内容,或者我是否需要明确告诉 sbt 加载 log4j.properties?我应该一起尝试一种新方法吗?

我还受到限制,因为应用程序需要能够在我们的 CI 环境和应用了日志记录设置的其他用户计算机上运行。这意味着需要从应用程序的 git 存储库中包含和识别这些设置。

【问题讨论】:

  • 你最终解决了这个问题吗? (因为我也有同样的情况)
  • 单元测试是连接到由单元测试启动的spark还是连接到与单元测试具有不同生命周期的spark服务器 - 即。是否已在运行并在测试完成后继续运行?

标签: scala apache-spark log4j sbt


【解决方案1】:

请将您的 log4j.properties 复制到 $SPARK_HOME/conf 目录。那是spark安装使用的那个

【讨论】:

  • 设置需要在应用程序目录本身本地存储和使用,以便在其他用户和我们的 CI 环境之间共享。不能为 Spark 强制执行特定的全局日志记录设置
猜你喜欢
  • 2015-04-27
  • 2011-03-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-08-05
  • 2015-01-15
  • 2016-01-30
  • 2021-10-07
相关资源
最近更新 更多