如何摆脱“使用Spark的默认log4j配置文件:org / apache / spark / log4j-defaults.properties”消息?

时间:2015-06-18 20:01:06

标签: log4j apache-spark

我试图压制消息

Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties

当我运行我的Spark应用程序时。我已成功重定向INFO消息,但此消息不断显示。任何想法都将不胜感激。

4 个答案:

答案 0 :(得分:10)

更简单的是,您cd SPARK_HOME/conf然后mv log4j.properties.template log4j.properties然后打开log4j.properties并将所有INFO更改为ERROR。这里SPARK_HOME是火花安装的根目录。

有些人可能正在使用hdfs作为他们的Spark存储后端,并且会发现日志消息实际上是由hdfs生成的。要更改此设置,请转到HADOOP_HOME/etc/hadoop/log4j.properties文件。只需将hadoop.root.logger=INFO,console更改为hadoop.root.logger=ERROR,console即可。我的hadoop安装的根目录HADOOP_HOME再一次为/usr/local/hadoop

答案 1 :(得分:4)

好的,我已经想出办法来做到这一点。所以基本上,我最初有自己的log4j.xml,正在使用,因此我们看到了这个属性。一旦我拥有自己的" log4j.properties"文件,这条消息消失了。

答案 2 :(得分:1)

如果将log4j.properties文件放在main resourcestest resources下,也会发生这种情况。在这种情况下,请从test resources中删除文件,而仅使用main resources中的文件即可解决此问题。

答案 3 :(得分:0)

以上所有答案均无法使用SBT对我有用。原来,您需要在您的log4j.properties明确地定义一个追加器,例如:

log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{HH:mm:ss} %-5p %c{1}:%L - %m%n

log4j.rootLogger=WARN, stdout
log4j.logger.org.apache.spark=WARN, stdout
log4j.logger.com.yourcompany=INFO, stdout

将其放在您的resources目录中,鲍勃是您的叔叔!