Open
Description
Problem Statement
I am trying to use the sentry-spring-boot-starter-jakarta
library. However, I have discovered that warning logs during the application startup are not being sent to Sentry. In SentryLogbackAppenderAutoConfiguration
, the autoconfiguration for SentryLogbackInitializer
is found, and this configuration seems to be too late.
Spring publishes events in the order described in Spring Application Events and Listeners. When configuring SentryAppender
directly via logback-spring.xml
without using the sentry-spring-boot-starter-jakarta
library, the SentryAppender
is initialized at the time of the ApplicationEnvironmentPreparedEvent
publication. This is an earlier initialization point. Please refer to LoggingApplicationListener.java#L218.
Solution Brainstorm
- Instead of using
SentryLogbackAppenderAutoConfiguration
, how about registering the listener quickly by configuring it inspring.factories
like:
org.springframework.context.ApplicationListener=\
io.sentry.spring.boot.jakarta.SentryLogbackInitializer
- Currently,
SentryLogbackInitializer
supports events of typeContextRefreshedEvent
, but even with early listener registration, a lot of tasks may already have been performed by the timeContextRefreshedEvent
is published. Can we initialize it at the time ofApplicationEnvironmentPreparedEvent
publication?
Metadata
Metadata
Assignees
Labels
Type
Projects
Status
Needs Discussion