Kusch's blog Kusch's blog
首页
Java
框架
部署与运维
数据库
  • 我的电脑
  • 科学技巧
  • 杂文铺
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

Mr.Kusch

入门前把门拆了的程序猿一枚
首页
Java
框架
部署与运维
数据库
  • 我的电脑
  • 科学技巧
  • 杂文铺
  • 友情链接
关于
收藏
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • SpringBoot

    • SpringBoot数据多线程入库
    • SpringBoot扫码上传文件
    • Springboot接入ELK进行日志收集
      • Springboot接入ELK进行日志收集
      • 关键配置
        • 新建或修改logback-spring.xml
        • 关键jar包
      • 查看结果
  • SpringCloud

  • Mybatis

  • 框架
  • SpringBoot
Mr.Kusch
2023-05-19
目录

Springboot接入ELK进行日志收集

# Springboot接入ELK进行日志收集

本文基于 docker-compose部署ELK 环境下调试

# 关键配置

步骤:新建一个可运行的Springboot程序,引入jar包配置下日志即可完成接入。

在上面的安装文章中,开放了4560,4570,4580,并且配置成了接受不同等级的日志,在日志配置文件中体现。

# 新建或修改logback-spring.xml

下面是我使用的配置,你只需要找到有关logstash的复制到你的配置中即可。

<?xml version="1.0" encoding="utf-8"?>
<configuration>
    <contextName>vedio-download</contextName>
    <!-- property标签可用于自定义属性,比如定义一个,然后使用${LOG_HOME}去引用它 -->
    <property name="pattern" value="%d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg %n"/>
    <!--
        logback可配置多种颜色,支持:
        “%black”, “%shired”, “%green”,“%yellow”,“%blue”, “%magenta”,“%cyan”,
        “%white”, “%gray”, “%boldRed”,“%boldGreen”, “%boldYellow”, “%boldBlue”,
        “%boldMagenta”“%boldCyan”,“%boldWhite” , “%highlight”
    -->
    <property name="pattern-color" value="%yellow(%d{yyyy-MM-dd HH:mm:ss.SSS}) [%thread] %highlight(%-5level) %green(%logger{50}) - %boldCyan(%msg) %n"/>
    <property name="LOG_HOME" value="logs"/>

    <!-- 控制台输出 -->
    <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>

    <!-- 控制台输出-带颜色 -->
    <appender name="CONSOLE-WITH-COLOR" class="ch.qos.logback.core.ConsoleAppender">
        <encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
            <pattern>${pattern-color}</pattern>
        </encoder>
    </appender>

    <!-- 文件输出 -->
    <appender name="FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
        <rollingPolicy class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
            <fileNamePattern>${LOG_HOME}/application.%d.%i.log</fileNamePattern>
            <timeBasedFileNamingAndTriggeringPolicy class="ch.qos.logback.core.rolling.SizeAndTimeBasedFNATP">
                <!-- 日志最大大小,超出就创建新的文件-->
                <maxFileSize>10MB</maxFileSize>
            </timeBasedFileNamingAndTriggeringPolicy>
            <!-- 日志最大保存时间 -->
            <maxHistory>30</maxHistory>
        </rollingPolicy>

        <encoder>
            <pattern>${pattern}</pattern>
        </encoder>
    </appender>


<!--    <include resource="org/springframework/boot/logging/logback/base.xml"/>-->
    <springProperty scope="context" name="applicationName" source="spring.application.name"/>

    <appender name="infoLogstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>你的logstashIP:4560</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <!--添加applicationName字段 -->
            <customFields>{"applicationName":"${applicationName}"}</customFields>
        </encoder>
    </appender>

    <appender name="operationLogstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>你的logstashIP:4570</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"applicationName":"${applicationName}"}</customFields>
        </encoder>
    </appender>

    <appender name="securityLogstash" class="net.logstash.logback.appender.LogstashTcpSocketAppender">
        <destination>你的logstashIP:4580</destination>
        <encoder charset="UTF-8" class="net.logstash.logback.encoder.LogstashEncoder">
            <customFields>{"applicationName":"${applicationName}"}</customFields>
        </encoder>
    </appender>

    <logger name="operation" level="info">
        <appender-ref ref="operationLogstash"/>
    </logger>

    <logger name="security" level="info">
        <appender-ref ref="securityLogstash"/>
    </logger>

    <root level="INFO">
        <!-- 输入ELK info-->
        <appender-ref ref="infoLogstash"/>
        <!-- 控制台 -->
        <appender-ref ref="CONSOLE-WITH-COLOR"/>
        <!-- 文件 -->
        <appender-ref ref="FILE"/>
    </root>
</configuration>
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88

# 关键jar包

<dependency>
    <groupId>net.logstash.logback</groupId>
    <artifactId>logstash-logback-encoder</artifactId>
    <version>7.3</version>
</dependency>
1
2
3
4
5

# 查看结果

展开查看

1 2 3 4

编辑 (opens new window)
#随笔
上次更新: 2023/05/28, 08:23:00
SpringBoot扫码上传文件
SpringCloud整合Nacos

← SpringBoot扫码上传文件 SpringCloud整合Nacos→

最近更新
01
Linux与Docker的时区
05-30
02
Docker部署Sentinel
05-30
03
Git提交常用表情 转载
05-28
更多文章>
Theme by Vdoing | Copyright © 2023-2023 Mr.Kusch | MIT License | 苏ICP备20030181号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式