问题 Java spark框架启用日志记录


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

在这里我的pom.xml dependecies

<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>

我怎样才能启用所有火花记录?


3320
2017-07-22 13:56


起源

您可以配置log4j以正常捕获日志 - nikhilgupta86


答案:


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

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


3
2017-07-22 16:43





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

<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();
});

15
2017-11-23 23:56





不确定这是否意味着在构建的日志记录中禁用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-


0
2017-10-01 00:14





您是否添加了log4j属性文件?看一下 这个文件

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


-3
2017-07-22 14:05



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