Logstash неправильно читает свойства пружины - PullRequest
0 голосов
/ 26 ноября 2018

Итак, у меня есть довольно простая конфигурация 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 для конкретной среды.

Кто-нибудь знает, почему это может происходить?

...