我正试图压制该消息
Using Spark's default log4j profile: org/apache/spark/log4j-defaults.properties
当我运行 Spark 应用程序时。我已成功重定向 INFO 消息,但此消息不断显示。任何想法将不胜感激。
更简单,您只需
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.xml,正在使用它,因此我们看到了这个属性。一旦我有了自己的“log4j.properties”文件,这条消息就消失了。
如果您将
log4j.properties
文件同时放在 main/resources
和 test/resources
下,也会发生这种情况。在这种情况下,从 test/resources
中删除文件并仅使用 main/resources
中的文件可以解决该问题。
以上答案对我使用 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
目录中,鲍勃就是您的叔叔!
如果您使用 Spark-3.4 及更高版本,请将
log4j.properties
重命名为 log42j.properties
以使用您的日志配置。我对 log4j.properties 所做的任何更改对日志记录都没有影响。