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

相关文章
相关标签/搜索