2016-05-17 115 views
6

我正在Scala中使用SBT構建它的Spark應用程序。 Spark創建非常詳細的日誌記錄,我想在測試運行時忽略它。log4j.properties在運行sbt測試時忽略

我有一個log4j.properties文件在src /測試/資源設置,以及SRC /主/資源具有以下內容:

# 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倉庫中包含和識別這些設置。

+0

你最終解決了這個問題嗎? (因爲我處於同一情況) – daveoncode

回答

0

請將您的log4j.properties複製到$SPARK_HOME/conf目錄。那是火花裝置使用的那個

+0

設置需要存儲在本地應用程序目錄本身,以便它們可以在其他用戶和我們的CI環境之間共享。強制Spark的特定全局日誌記錄設置不是一個選項 – lobobabysaurus

+0

我提到的是標準方法:它是* a *正確的。所以你顯然有*額外*的要求(*沒有在OP *中提到)。我可能會在稍後看看如何解決您的具體問題。 – javadba

相關問題