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

btxsgosb  于 2023-10-18  发布在  Spark
关注(0)|答案(5)|浏览(250)

我在努力压制

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

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

jtoj6r0c

jtoj6r0c1#

更简单的是,您只需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

ajsxfq5m

ajsxfq5m2#

好吧,我想到了一个办法。基本上,我最初有自己的log4j.xml,它被使用,因此我们看到了这个属性。一旦我有了自己的“log4j.properties“文件,这条消息就消失了。

xfb7svmp

xfb7svmp3#

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

cmssoen2

cmssoen24#

上面的答案没有一个对我使用SBT有效。原来你需要在log4j.properties显式地定义一个appender,比如:

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目录里,鲍勃就是你的叔叔了!

9avjhtql

9avjhtql5#

如果您使用的是Spark-3.4,只需将log4j.properties重命名为log4j2.properties即可使用日志配置。我对www.example.com所做的任何更改log4j.properties都不会对日志记录产生影响。

相关问题