我正在尝试从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
我的依赖项:
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>