admin管理员组

文章数量:1635671

异常信息如下:

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 to add one or more destinations to the appender

本想要实现的目标是在logback中动态引入application中配置logstash指向的host和port,之前的做法是:

application.yml

log:
  level: DEBUG
  host: 192.168.1.132
  port: 4560

logback-spring.xml

<springProperty scope="context" name="LOG_HOST" source="log.host"/>
<springProperty scope="context" name="LOG_PORT" source="log.port"/>

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>${LOG_HOST}:${LOG_PORT}</destination> //logstash ip和暴露的端口,logback就是通过这个地址把日志发送给logstash
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>

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

<appender name="LOGSTASH" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>${LOG_HOST:- }:${LOG_PORT:- }</destination> //logstash ip和暴露的端口,logback就是通过这个地址把日志发送给logstash
    <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder" />
</appender>

 

本文标签: 异常参数动态logstashdestination