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

问题描述 投票:0回答:5

我正试图压制该消息

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

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

log4j apache-spark
5个回答
15
投票

更简单,您只需

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

有些人可能使用

hdfs
作为 Spark 存储后端,并且会发现日志消息实际上是由
hdfs
生成的。要更改此设置,请转到
HADOOP_HOME/etc/hadoop/log4j.properties
文件。只需将
hadoop.root.logger=INFO,console
更改为
hadoop.root.logger=ERROR,console
。再次强调,
HADOOP_HOME
对我来说是你的 hadoop 安装的根目录,这是
/usr/local/hadoop


9
投票

好的,所以我找到了一种方法来做到这一点。所以基本上,我最初有自己的 log4j.xml,正在使用它,因此我们看到了这个属性。一旦我有了自己的“log4j.properties”文件,这条消息就消失了。


7
投票

如果您将

log4j.properties
文件同时放在
main/resources
test/resources
下,也会发生这种情况。在这种情况下,从
test/resources
中删除文件并仅使用
main/resources
中的文件可以解决该问题。


2
投票

以上答案对我使用 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
目录中,鲍勃就是您的叔叔!


0
投票

如果您使用 Spark-3.4 及更高版本,请将

log4j.properties
重命名为
log42j.properties
以使用您的日志配置。我对 log4j.properties 所做的任何更改对日志记录都没有影响。

© www.soinside.com 2019 - 2024. All rights reserved.