【问题标题】:unable to use log4j.properties from the jar in spark无法在 spark 中使用 jar 中的 log4j.properties
【发布时间】:2020-11-18 01:46:58
【问题描述】:

我的 log4j.properties 与 uber/fat 应用程序 jar 打包在一起,这是我的 spark 提交命令

spark-submit --files file:log4j.properties 
--conf spark.driver.extraJavaOptions=-Dlog4j.configuration=classpath:log4j.properties  
--conf spark.executor.extraJavaOptions=-Dlog4j.configuration=classpath:log4j.properties  
--class com.myproject.Application --deploy-mode cluster --master yarn s3://myappbucket/application.jar

log4j.properties 已打包并在 jar 中可用,但是在运行应用程序时它们对执行程序不可用,我面临以下错误,我在这里缺少什么,如何获得可用的 log4j.properties到执行者/工作节点,有人可以帮忙吗

我在 spark submit 命令中使用了 classpath:log4j.properties,看起来执行程序没有在下面进行我的 log4j 配置更改

log4j.logger.com.myproject.Application=INFO,appfile 
log4j.appender.appfile=org.apache.log4j.RollingFileAppender
log4j.appender.appfile.File=${base.log.dir}/app.log
log4j.appender.appfile.MaxFileSize=200MB
log4j.appender.appfile.MaxBackupIndex=10 

没有任何影响,所有内容都打印在 stdout 和 stderr 日志上,而不是创建 app.log 并记录在 app.log 文件中

【问题讨论】:

    标签: java apache-spark logging log4j


    【解决方案1】:

    file: 表示它正在文件系统上而不是 jar 中查找配置文件。你可能想试试classpath:log4j.properties

    【讨论】:

    • 我在 spark submit 命令中使用了 classpath:log4j.properties,看起来执行程序没有在下面进行我的 log4j 配置更改
    • log4j.logger.com.myproject.Applicationr=INFO,appfile log4j.appender.appfile=org.apache.log4j.RollingFileAppender log4j.appender.appfile.File=${base.log.dir}/app.log log4j.appender.appfile.MaxFileSize=200MB log4j.appender.appfile.MaxBackupIndex=10 什么都没有生效,所有内容都打印在 stdout 和 stderr 日志上,而不是创建 app.log 并记录在 app.log 文件中
    • 我不确定你是否可以拥有“。”在您的记录器标识符中。
    • 对不起,您所说的“。”是什么意思。在标识符中?你指的是哪一个?
    • "com.myproject.Applicationr" 是记录器的标识符,如果我正确阅读了documentation,我不确定是否允许使用这些点。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-08
    • 2017-03-27
    • 1970-01-01
    • 2019-08-15
    • 1970-01-01
    相关资源
    最近更新 更多