You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
After updating Spring Boot from 2.3.5 to 2.4.1, our logging patterns are messed up. Our setup is that we deploy multiple Spring Boot applications onto the same Tomcat. When the first application is deployed, it sets the system property LOG_LEVEL_PATTERN which seems to be evaluated for all applications that are being deployed afterwards.
The log pattern itself is modified by Spring Cloud and looks like
When using Spring Boot 2.3.5, spring.application.name could not be resolved during the evaluation of LoggingSystemProperties, but this seems to have changed with 2.4.1.
Is it even possible to disable the system property setting so that there is no conflict between the applications?
Update: I think the difference can be found in org.springframework.boot.logging.logback.LogbackLoggingSystem#loadDefaults. In 2.3.5, LOG_LEVEL_PATTERN was initialized for the logger context in this method. However, in 2.4.1 the context no longer contains this property. It is evaluated in ch.qos.logback.core.subst.NodeToStringTransformer#lookupKey.
The text was updated successfully, but these errors were encountered:
Thanks for the report. #23767 removed the code that set the properties on the logger context. This works fine in the common scenario where there's a single application per JVM but not when multiple applications share a JVM as one application's configuration may set system properties that overwrite another's.
Update `LoggingSystemProperties` so that system environment properties
are also applied to the `LoggerContext`. This is required when multiple
applications are deployed to the same Servlet container. In such setups
there's only a single JVM and the System Environment can be changed
when multiple applications start at the same time.
Fixesgh-24835
After updating Spring Boot from 2.3.5 to 2.4.1, our logging patterns are messed up. Our setup is that we deploy multiple Spring Boot applications onto the same Tomcat. When the first application is deployed, it sets the system property
LOG_LEVEL_PATTERN
which seems to be evaluated for all applications that are being deployed afterwards.The log pattern itself is modified by Spring Cloud and looks like
When using Spring Boot 2.3.5,spring.application.name
could not be resolved during the evaluation ofLoggingSystemProperties
, but this seems to have changed with 2.4.1.Is it even possible to disable the system property setting so that there is no conflict between the applications?Update: I think the difference can be found in
org.springframework.boot.logging.logback.LogbackLoggingSystem#loadDefaults
. In 2.3.5,LOG_LEVEL_PATTERN
was initialized for the logger context in this method. However, in 2.4.1 the context no longer contains this property. It is evaluated inch.qos.logback.core.subst.NodeToStringTransformer#lookupKey
.The text was updated successfully, but these errors were encountered: