Java Spark框架启用日志记录。

11

我正在使用Spark框架、嵌入式Jetty和Handlebars模板引擎构建一个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以正常捕获日志。 - nikhilgupta86
4个回答

17

只需将以下依赖项添加到您的项目中,即可启用日志记录

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

并且您可以注册一个 catch-all Spark 异常处理程序来记录未捕获的异常:

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

2

-1

-3

你是否已经添加了log4j属性文件?请查看这个文档

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


我正在使用2.5版本,在网站上它说要添加slf4j:http://sparkjava.com/documentation.html#add-a-logger - SergiX44
5
你所指的文档是用于数据处理框架Spark,而不是网络框架Spark。是的,这是一个很烦人的命名空间冲突。 ;) - Pete Hodgson
这似乎并没有回答问题。这是针对Spark Java而不是Apache Spark的 :) http://sparkjava.com/documentation.html#how-do-i-enable-logging - Aniket Thakur

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接