写在前面的话
网上看到的文章都是比较1、2年前的了,刚好自己整合了下,来分享下经验。
目前所了解到的springboot应用是通过所使用的不同的日志框架来推送数据到graylog里面,常用的有logback,log4j2等。
参考了网上文章对各个日志框架的分析,这里最终采用的是springboot自带的logback。
至于logback的优势可以参考如下大神的文章,本文不再赘述:
https://blog.youkuaiyun.com/xudan10...
graylog 简介
Graylog 是与 ELK 可以相提并论的一款集中式日志管理方案,支持数据收集、检索、可视化 Dashboard。部署起来不像ELK那么重,在docker环境的话凭借一个docker-compose.yml即可完成部署启动运行,非常方便。
用的时候只需要在目标镜像创建容器时添加参数即可。
对graylog想进一步了解的童鞋可以参考如下链接:
https://www.jianshu.com/p/25e...
https://hub.docker.com/r/gray...
开始搭建
创建springboot项目
利用IDEA或者eclipse创建一个springboot项目,可以不选择任何依赖,直接下一步下一步完成即可。
IDE和框架版本
本文所使用的IDE是IDEA,springboot版本为springboot 2.0.3,如果各位童鞋在按照教程走完还发送不了日志到graylog的话,可以更换为使用本文所使用的springboot版本再试
添加依赖
本文所使用的依赖是国外的大神所作,最近都一直有更新,算是还比较新的,附上依赖的github地址:https://github.com/osiegmar/l...
在pom.xml的dependency加入的如下依赖:
<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上仔细了解。
启动项目
启动项目之后,即可在graylog控制台中看到项目启动时打印的日志