【问题标题】:How to write logs in a file using apache spark如何使用 apache spark 在文件中写入日志
【发布时间】:2025-11-30 13:10:02
【问题描述】:

我正在做一个 Maven 项目。 Apache spark 有自己的 log4j 功能。有没有一种方法可以将 apache spark 日志和我自己的日志语句写入文件?

【问题讨论】:

    标签: java maven apache-spark log4j


    【解决方案1】:

    与任何其他 java 应用程序一样,您需要类路径中的 jars,并且需要一个 log4j 配置文件。

    [1] 类路径中的罐子

    Spark 已经在其jars 文件夹($SPARK_HOME 下)中附带了这两个:

    slf4j-api-1.7.16.jar 
    slf4j-log4j12-1.7.16.jar
    

    所以你只需要在你的 pom 中添加一个“provided”,这样你就可以用它来编译:

    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-api</artifactId>
        <version>1.7.16</version>
        <scope>provided</scope>
    </dependency>
    

    请注意,不同版本的 Spark 可能附带不同版本的 slf,因此请查看 [jars] 文件夹以将正确的版本与您使用的 Spark 匹配。

    [2] log4j 配置文件

    • 转到 spark 主目录下的 conf 文件夹。
    • 将此文件log4j.properties.template重命名为log4j.properties
    • 添加您的配置

    现在您可以在代码中添加log.debug

    请注意,代码可能在 Driver 或 Executor 上运行,因此日志将根据其运行位置而位于不同的机器中。

    【讨论】: