如何摆脱 "Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties" 消息?

How to get rid of "Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties" message?

我正在尝试隐藏消息

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

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

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

更简单的你只需 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.

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

None 以上答案确实对我使用 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 目录中,Bob 就是你的叔叔!