Apache spark Spark不接受log4j2.xml
我尝试使用log4j2.xml代替spark的默认log4j日志记录 我的Log4j2.xml如下Apache spark Spark不接受log4j2.xml,apache-spark,spark-streaming,Apache Spark,Spark Streaming,我尝试使用log4j2.xml代替spark的默认log4j日志记录 我的Log4j2.xml如下 <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE log4j:configuration PUBLIC "-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration PUBLIC
"-//APACHE//DTD LOG4J 1.2//EN" "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<Configuration status="WARN" name="MyApp" monitorInterval="30">
<Properties>
<Property name="appName">MyApp</Property>
<Property name="appenderPatternLayout">%d{yyyy-MM-dd HH:mm:ss} %c{1} [%p] %m%n</Property>
<Property name="fileName">/app/vodip/logs/${appName}.log</Property>
</Properties>
<Appenders>
<RollingFile name="RollingFile"
fileName="${fileName}"
filePattern="a1
${appName}-%d{yyyy-MM-dd-HH}-%i.log">
<PatternLayout>
<Pattern>${appenderPatternLayout}</Pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="4" modulate="true"/>
<SizeBasedTriggeringPolicy size="250 MB"/>
</Policies>
</RollingFile>
</Appenders>
<Loggers>
<Logger name="xyz.abcs.MyApp" level="debug" additivity="false">
<AppenderRef ref="RollingFile"/>
</Logger>
<Root level="debug">
<AppenderRef ref="RollingFile"/>
</Root>
</Loggers>
</Configuration>
我在我的工作日志中看到了这一点。这意味着我的日志没有使用log4j2功能
log4j:WARN可继续解析错误10和第78列log4j:WARN
文档根元素“配置”,必须与DOCTYPE根元素“null”匹配。
log4j:WARN可继续解析错误10和第78列log4j:WARN
文档无效:未找到语法。log4j:错误DOM元素为-
不是一个元素。使用Spark的默认log4j
档案:org/apache/spark/log4j-defaults.properties
有人能告诉我配置有什么问题吗?您是否也将log4j文件放在项目的资源文件夹中,如果它将在那里,然后将其从那里删除,对于使用log4j为驱动程序和执行程序记录spark应用程序,您还应该为驱动程序和执行程序提供log4j路径,如下所示
spark-submit --class MAIN_CLASS --driver-java-options "-Dlog4j.configuration=file:PATH_OF_LOG4J" --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:PATH_OF_LOG4J" --master MASTER_IP:PORT JAR_PATH
您也可以参考此博客了解更多详细信息命令行中至少有一个错误会导致此错误
-Dlog4j.configuration=。
一定是
-Dlog4j.configurationFile=。
使用log4j2时
log4j.configuration
由旧的log4j解析,它显然不理解新的配置格式并抛出解析错误我认为您缺少我在代码中添加了这一行。但它给出了log4j:WARN可继续解析错误13和第78列log4j:WARN文档根元素“Configuration”,必须与DOCTYPE root“log4j:Configuration”匹配。log4j:WARN Continuable解析错误13和第78列log4j:WARN元素类型“Configuration”必须声明。log4j:WARN Continuable解析错误15和第17列log4j2似乎不是spark check的好友,如果您还没有尝试过此操作,但仍然收到错误和警告log4j:WARN Continuable解析错误42和第43列log4j:WARN元素类型“AppenderRef”必须声明。log4j:错误DOM元素是-不是元素。使用Spark的默认log4j配置文件:org/apache/Spark/log4j-defaults.properties
spark-submit --class MAIN_CLASS --driver-java-options "-Dlog4j.configuration=file:PATH_OF_LOG4J" --conf "spark.executor.extraJavaOptions=-Dlog4j.configuration=file:PATH_OF_LOG4J" --master MASTER_IP:PORT JAR_PATH