SpringBoot logback 整合 GrayLog

寫在前面的話

網上看到的文章都是比較一、2年前的了,恰好本身整合了下,來分享下經驗。
目前所瞭解到的springboot應用是經過所使用的不一樣的日誌框架來推送數據到graylog裏面,經常使用的有logback,log4j2等。
參考了網上文章對各個日誌框架的分析,這裏最終採用的是springboot自帶的logback。
至於logback的優點能夠參考以下大神的文章,本文再也不贅述:git

https://blog.csdn.net/xudan10...

graylog 簡介

Graylog 是與 ELK 能夠相提並論的一款集中式日誌管理方案,支持數據收集、檢索、可視化 Dashboard。部署起來不像ELK那麼重,在docker環境的話憑藉一個docker-compose.yml便可完成部署啓動運行,很是方便。
用的時候只須要在目標鏡像建立容器時添加參數便可。
對graylog想進一步瞭解的童鞋能夠參考以下連接:github

https://www.jianshu.com/p/25e...
https://hub.docker.com/r/gray...

開始搭建

建立springboot項目

利用IDEA或者eclipse建立一個springboot項目,能夠不選擇任何依賴,直接下一步下一步完成便可。spring

IDE和框架版本

本文所使用的IDE是IDEA,springboot版本爲springboot 2.0.3,若是各位童鞋在按照教程走完還發送不了日誌到graylog的話,能夠更換爲使用本文所使用的springboot版本再試docker

添加依賴

本文所使用的依賴是國外的大神所做,最近都一直有更新,算是還比較新的,附上依賴的github地址:https://github.com/osiegmar/l... springboot

在pom.xml的dependency加入的以下依賴:app

<dependency>
            <groupId>de.siegmar</groupId>
            <artifactId>logback-gelf</artifactId>
            <version>1.1.0</version>
        </dependency>

配置日誌輸出

在resources目錄下(application.properties同級目錄)添加logback.xml,內容以下:框架

<?xml version="1.0" encoding="UTF-8"?>
<configuration>

    <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
        <encoder>
            <pattern>%d{HH:mm:ss.SSS} %-5level %logger{36} - %msg%n</pattern>
        </encoder>
    </appender>

    <!--發送GELF UDP 到 graylog-->
    <!--使用第三方組件 https://github.com/osiegmar/logback-gelf -->
    <appender name="GELF" class="de.siegmar.logbackgelf.GelfUdpAppender">
        <graylogHost>192.168.1.217</graylogHost>
        <graylogPort>12201</graylogPort>
        <!--如下爲可選配置-->
        <maxChunkSize>508</maxChunkSize>
        <useCompression>true</useCompression>
        <layout class="de.siegmar.logbackgelf.GelfLayout">
            <originHost>logback-graylog</originHost>
            <includeRawMessage>false</includeRawMessage>
            <includeMarker>true</includeMarker>
            <includeMdcData>true</includeMdcData>
            <includeCallerData>false</includeCallerData>
            <includeRootCauseData>false</includeRootCauseData>
            <includeLevelName>false</includeLevelName>
            <shortPatternLayout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%m%nopex</pattern>
            </shortPatternLayout>
            <fullPatternLayout class="ch.qos.logback.classic.PatternLayout">
                <pattern>%m</pattern>
            </fullPatternLayout>
            <staticField>app_name:backend</staticField>
            <staticField>os_arch:${os.arch}</staticField>
            <staticField>os_name:${os.name}</staticField>
            <staticField>os_version:${os.version}</staticField>
        </layout>
    </appender>

    <root level="INFO">
        <appender-ref ref="GELF" />
        <appender-ref ref="STDOUT"/>
    </root>

</configuration>

其中graylogHost須要改成你本身的 graylog IP地址。其餘參數能夠在該依賴的github上仔細瞭解。eclipse

啓動項目

啓動項目以後,便可在graylog控制檯中看到項目啓動時打印的日誌.net

相關文章
相關標籤/搜索