Итак, у меня есть довольно простая конфигурация logstash, которая должна читать URL хоста из весны.Хотя по какой-то причине это не работает.
Мой logback-spring.xml
выглядит примерно так:
<springProperty name="logstashDestination" scope="context" source="service.logstash.host"/>
<appender class="net.logstash.logback.appender.LogstashTcpSocketAppender" name="LOGSTASH">
<destination>${logstashDestination}</destination>
<!-- encoder is required -->
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<customFields>{"service":"provisioning-engine-jane"}</customFields>
</encoder>
</appender>
В моем application.properties
у меня есть следующие строки:
spring.profiles.active:sit
service.logstash.host:NaN
И в application-sit.properties
у меня есть эта строка:
service.logstash.host:api-test.local:9013
Это приводит к аварийному завершению всего приложения с ошибкой
Exception in thread "restartedMain" java.lang.reflect.InvocationTargetException
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:498)
at org.springframework.boot.devtools.restart.RestartLauncher.run(RestartLauncher.java:49)
Caused by: java.lang.IllegalStateException: Logback configuration error detected:
ERROR in ch.qos.logback.core.joran.util.PropertySetter@44cb3536 - Could not invoke method addDestination in class net.logstash.logback.appender.LogstashTcpSocketAppender with parameter of type java.lang.String java.lang.reflect.InvocationTargetException
ERROR in net.logstash.logback.appender.LogstashTcpSocketAppender[LOGSTASH] - No destination was configured. Use <destination> to add one or more destinations to the appender
Странно, что если я добавлюbootstrap.properties
файл с некоторыми фиктивными данными запускается.Проблема в том, что фиктивные данные переопределяют мой URL-адрес logstash для конкретной среды.
Кто-нибудь знает, почему это может происходить?