【发布时间】: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