logback设置和spring配置服务器
问题描述:
有很多微服务,他们都应该写日志到同一个graylog服务器。在每一个微服务中都使用了一个GelfLogbackAppender,它有几个设置,如主机,发布等。这些设置对于所有的服务都是一样的,我想把它们存储在一个地方,像一个spring配置服务器。我怎样才能做到这一点?我如何从配置服务器获取并使用GELF_ADDRESS?logback设置和spring配置服务器
<appender name="gelf" class="biz.paluch.logging.gelf.logback.GelfLogbackAppender">
<host>udp:${GELF_ADDRESS}</host>
<port>${GELF_PORT}</port>
UPDATE我已经决定要显示简单的例子,我想,假设我想改变,通过配置服务器的所有微服务日志级别。我做接下来的事情就:
的logback-spring.xml
<configuration>
<property name="LEVEL" value="${log_level}"/>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<root level="${LEVEL}">
<appender-ref ref="CONSOLE"/>
</root>
</configuration>
application.yml是在配置服务器是
eureka:
client:....
feign:
hystrix:....
log_level: info
它不工作,我总是看到DEBUG级别,如果我写
<property name="LEVEL" value="info"/>
手动进入logback-spring.xml,级别会改变,但我想通过*配置服务器来做到这一点
答
定义配置服务器中应用程序特定属性中的GELF_ADDRESS属性,并尝试使用配置客户端配置相应的应用程序
按照本教程来设置配置服务器https://spring.io/guides/gs/centralized-configuration/ 和读取配置客户端属性
定义如下财产app.properties:
app.properties
GELF_ADDRESS=<<value to be set>>
更新1:
我试着用样品。检查了这一点:https://github.com/BarathArivazhagan/Spring-Task-Sample/tree/master/Logback-configuration-configserver
我已经使用配置服务器的微服务的其他设置,但是当我只是把GELF_ADDRESS:127.0.0.1进入一般application.yml这是进入配置服务器,然后它不起作用 – slippery
提供你的代码进一步评论。另外检查在config客户端中形成的url上的日志以从配置服务器获取属性源,更重要的是将boot.cloud.config.uri放在bootstrap.yml中 – Barath
我在我的文章中添加了一个新示例。 其他业务设置通常从配置服务器加载,我明白了。 – slippery