【问题标题】:Java spark framework enable loggingJava spark 框架启用日志记录
【发布时间】:2018-10-01 08:14:36
【问题描述】:

我正在使用带有嵌入式 Jetty 和车把模板引擎的 Spark 框架构建一个 java 应用程序。 但是当我收到 500 内部错误时,控制台什么也没说。 我在 pom.xml 中添加了这里的依赖项:http://sparkjava.com/documentation.html#add-a-logger 但不会打印所有异常/错误(如错误 500)

这里是我的 pom.xml 依赖项

<dependencies>

    <!-- FRAMEWORK:     Spark -->
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-core</artifactId>
        <version>2.5</version>
    </dependency>

    <!-- TEMPLATES:     Handlebars -->
    <dependency>
        <groupId>com.sparkjava</groupId>
        <artifactId>spark-template-handlebars</artifactId>
        <version>2.3</version>
    </dependency>

    <!-- DB-MAPPING:    sql2o -->
    <dependency>
        <groupId>org.sql2o</groupId>
        <artifactId>sql2o</artifactId>
        <version>1.5.4</version>
    </dependency>

    <!-- DRIVERS: sqlite-->
    <dependency>
        <groupId>org.xerial</groupId>
        <artifactId>sqlite-jdbc</artifactId>
        <version>3.8.11.2</version>
    </dependency>

    <!-- LOGGER:        slf4j -->
    <dependency>
        <groupId>org.slf4j</groupId>
        <artifactId>slf4j-simple</artifactId>
        <version>1.7.21</version>
    </dependency>

</dependencies>

如何启用 spark 的所有日志记录?

【问题讨论】:

  • 可以配置log4j正常抓取日志

标签: java maven jetty embedded-jetty spark-framework


【解决方案1】:

To enable logging,只需将以下依赖项添加到您的项目中即可:

<dependency>
  <groupId>org.slf4j</groupId>
  <artifactId>slf4j-simple</artifactId>
  <version>1.7.21</version>
</dependency>

you can register 一个包罗万象的 Spark 异常处理程序,用于记录未捕获的异常:

Spark.exception(Exception.class, (exception, request, response) -> {
    exception.printStackTrace();
});

【讨论】:

    【解决方案2】:

    使用 log4j 实现日志记录。这就是为什么您不知道为什么会出现内部服务器错误

    http://logging.apache.org/log4j/2.x/

    【讨论】:

      【解决方案3】:

      不确定这是否意味着在内置日志记录中禁用 spark 或 Hadoop,但如果是这种情况,在 SparkContext 中设置日志级别对我有帮助。

      sc.setLogLevel("ERROR");
      

      可能的选项是ALL, DEBUG, ERROR, FATAL, INFO, OFF, TRACE, WARN

      https://spark.apache.org/docs/2.2.0/api/java/org/apache/spark/SparkContext.html#setLogLevel-java.lang.String-

      【讨论】:

        【解决方案4】:

        您是否添加了 log4j 属性文件?看看this documentation

        配置日志记录 Spark 使用 log4j 进行日志记录。您可以通过在 conf 目录中添加 log4j.properties 文件来配置它。一种开始方法是复制位于那里的现有 log4j.properties.template。

        【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2019-02-21
        • 1970-01-01
        • 2017-06-25
        • 1970-01-01
        • 1970-01-01
        • 2019-03-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多