Sentry в Spring 1.X просто не работаетJAVA

Программисты JAVA общаются здесь
Ответить
Гость
 Sentry в Spring 1.X просто не работает

Сообщение Гость »

У нас есть приложение Spring 1.5.17, и мы пытаемся просто интегрировать Sentry. Поскольку это более старая версия Spring (нет, обновление невозможно), мы следуем здесь инструкциям Sentry's Legacy SDK 1.7. Это довольно просто.
Конфигурация
Вот pom. Мы также используем другие библиотеки Spring, такие как logging/actuator/jpa, но не показываем их для ясности. Все та же весенняя версия.

Код: Выделить всё

io.sentry
sentry-spring
1.7.30



org.springframework.boot
spring-boot-starter-web
1.5.17.RELEASE

Кроме того, добавлен файл sendry.properties в src/main/resources.

Код: Выделить всё

enabled=true
dsn=***
environment=uat
sample.rate=1.0
stacktrace.app.packages=com.pls
stacktrace.hidecommon=false
Приложение
Создал шаблонный файл конфигурации, перезаписывающий два компонента в соответствии с документацией Sentry.

Код: Выделить всё

@Configuration
public class SentryConfig {

@Bean
public HandlerExceptionResolver sentryExceptionResolver() {
return new io.sentry.spring.SentryExceptionResolver();
}

@Bean
public ServletContextInitializer sentryServletContextInitializer() {
return new io.sentry.spring.SentryServletContextInitializer();
}
}
С помощью точек останова я подтвердил, что эти bean-компоненты инициализируются и правильно получают свойства из sendry.properties. В связанной теме я обнаружил, что если я вручную выполняю вызовы SentryClient.captureEvent(event), то события отображаются в Sentry. Это означает, что клиент Sentry настроен правильно и работает, но Spring на самом деле никогда не вызывает .captureEvent().
Чтобы подтвердить мои подозрений, я вошел в компонент SentryExceptionResolver и подтвердил, что код никогда не достигает этой точки останова.
[img]https://i.stack.imgur .com/DWTsW.png[/img]

Я пытался вызвать точку останова, выдавая фиктивные ошибки в @RestController, т.е.

Код: Выделить всё

@GET
@Path("/test")
public Object throwError(){
LOGGER.error("ERROR BEING LOGGED");
throw new RuntimeException("ERROR THROWN");
}
Хотя эта ошибка, безусловно, выдается в журналах консоли, она НЕ запускает кодовый путь .capture().
Ведение журнала?
В соответствующей теме упоминается что-то о модулях журналирования, но я не понимаю, как это связано. Зависимость sendry-spring загружает все, что нужно приложению, и клиент инициализируется, но на самом деле никогда не вызывается!
Несмотря на это, я пробовал добавлять различные зависимости журналирования (например, logback как описано в этом сторожевом документе), безрезультатно. Чего может не хватать в моей конфигурации!?!?
В случае, если это имеет значение, мы используем Spring-boot-starter-logging...

Код: Выделить всё

org.springframework.boot
spring-boot-starter-logging

Обратите внимание: когда я добавляю зависимость sendry-logback, приложение не загружается.
Изображение


Источник: https://stackoverflow.com/questions/649 ... s-not-work
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «JAVA»