我们可以通过logback.xml引用application中的参数方式动态配置日志等级和logstash的指向
1)application-local.yml或者application-test.yml
log:
level: DEBUG
host: 192.168.1.132
port: 4560
2) application-prod.yml
log:
level: INFO
host: 172.19.74.16
port: 4560
3)logback-spring.xml
springProperty 标签可以帮助我们从配置文件中获取参数
<configuration scan="true" scanPeriod="60 seconds" debug="false">
<springProperty scope="context" name="logLevel" source="log.level"/>
<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>
<!--日志级别-->
<root level="${logLevel}">
<appender-ref ref="LOGSTASH" />
</root>
</configuration>
相关内容: