2017-02-25 163 views
0

有很多微服務,他們都應該寫日誌到同一個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,級別會改變,但我想通過中央配置服務器來做到這一點

回答

0

定義配置服務器中應用程序特定屬性中的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

+0

我已經使用配置服務器的微服務的其他設置,但是當我只是把GELF_ADDRESS:127.0.0.1進入一般application.yml這是進入配置服務器,然後它不起作用 – slippery

+0

提供你的代碼進一步評論。另外檢查在config客戶端中形成的url上的日誌以從配置服務器獲取屬性源,更重要的是將boot.cloud.config.uri放在bootstrap.yml中 – Barath

+0

我在我的文章中添加了一個新示例。 其他業務設置通常從配置服務器加載,我明白了。 – slippery