Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/spring/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Sentry未在spring引导应用程序中自动捕获异常_Java_Spring_Spring Boot_Logging_Sentry - Fatal编程技术网

Java Sentry未在spring引导应用程序中自动捕获异常

Java Sentry未在spring引导应用程序中自动捕获异常,java,spring,spring-boot,logging,sentry,Java,Spring,Spring Boot,Logging,Sentry,我想使用sentry跟踪spring boot应用程序的异常。Sentry不会自动捕获异常。但是当我使用Sentry.capture(e)在抓块中,然后是哨兵 是捕获错误。下面是配置和一些代码片段。提前谢谢你的帮助 @SpringBootApplication @EnableAutoConfiguration public class MyApplication implements CommandLineRunner { private static final Logger logger

我想使用sentry跟踪spring boot应用程序的异常。Sentry不会自动捕获异常。但是当我使用
Sentry.capture(e)在抓块中,然后是哨兵
是捕获错误。下面是配置和一些代码片段。提前谢谢你的帮助

@SpringBootApplication
@EnableAutoConfiguration
public class MyApplication implements CommandLineRunner {

private static final Logger logger = LoggerFactory.getLogger(MyApplication.class);

public static void main(String[] args) {
        SpringApplication.run(MyApplication.class, args).close();
    }

@Override
public void run(String... args) throws IOException {
  try {
          int example = 1 / 0;
      } catch (Exception e) {
          //Sentry.capture(e);
          logger.error("Caught exception erwqerer!", e);
      }
   }
}
POM.xml

...
    <parent>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-parent</artifactId>
        <version>2.1.3.RELEASE</version>
    </parent>
...
        <dependency>
            <groupId>io.sentry</groupId>
            <artifactId>sentry-spring</artifactId>
            <version>1.7.5</version>
        </dependency>

我发现了问题:
MyApplication
正在实现
CommandLineRunner
。我用
sentry-spring
替代了
sentry-logback
选项,并更新了
logback.xml
,如下所示:

    <!-- Configure the Sentry appender, overriding the logging threshold to the WARN level -->
    <appender name="Sentry" class="io.sentry.logback.SentryAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
<!-- LOG everything at INFO level -->
    <root level="WARN">
        <appender-ref ref="Console" />
        <appender-ref ref="Sentry" />
    </root>

错误
%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n

您还需要指定
sentry dsn
属性。

我发现了问题:
MyApplication
正在实现
CommandLineRunner
。我用
sentry-spring
替代了
sentry-logback
选项,并更新了
logback.xml
,如下所示:

    <!-- Configure the Sentry appender, overriding the logging threshold to the WARN level -->
    <appender name="Sentry" class="io.sentry.logback.SentryAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
<!-- LOG everything at INFO level -->
    <root level="WARN">
        <appender-ref ref="Console" />
        <appender-ref ref="Sentry" />
    </root>

错误
%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n

您还需要指定
sentry dsn
属性。

因此需要手动执行
sentry.init()?出于soem原因,我假设sentry本身会为我做这件事……所以有必要手动执行
sentry.init()
?出于某种原因,我以为哨兵会为我做这件事。。。
    <!-- Configure the Sentry appender, overriding the logging threshold to the WARN level -->
    <appender name="Sentry" class="io.sentry.logback.SentryAppender">
        <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
            <level>ERROR</level>
        </filter>
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>
<!-- LOG everything at INFO level -->
    <root level="WARN">
        <appender-ref ref="Console" />
        <appender-ref ref="Sentry" />
    </root>