从application.yml登录目标配置

时间:2019-02-15 09:20:51

标签: spring spring-boot logback

我正在尝试从application.yml以XML导入目标配置来配置我的登录。

当我在XML中设置静态目标时,一切都很好,但是如果没有,那么启动时会出现此异常:

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[STASH] - No destination was configured. Use <destination> to add one or more destinations to the appender

我的依赖项:

  • spring-boot:“ 1.5.4.RELEASE”
  • net.logstash.logback:logstash-logback-encoder:4.9

logback-spring.xml

    <springProperty name="LOGBACK_URL" source="logback.destination.url"/>
    <springProperty name="LOGBACK_PORT" source="logback.destination.port"/>
    <appender name="STASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>${LOGBACK_URL}:${LOGBACK_PORT}</destination>
        <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">...
        </encoder>
    </appender>

applicaiton.yml

logback:
  destination:
    url: kibana.test
    port: 1234

我试图避免将此配置迁移到Java,并希望它是不必要的。预先感谢!

编辑

我通过添加默认值(如下所示在xml配置中为空格)解决了此问题:

<destination>${LOGBACK_URL:- }:${LOGBACK_PORT:- }</destination>

0 个答案:

没有答案
相关问题