美文网首页Springcloud
SpringCloud之Sleuth-8.集成ELK(2)

SpringCloud之Sleuth-8.集成ELK(2)

作者: 那钱有着落吗 | 来源:发表于2021-10-27 11:04 被阅读0次
image.png

继续接着上篇帖子,首先我们需要加入依赖

添加依赖

分别在traceA和traceB添加依赖,下面的是所有的依赖,如果跟着之前帖子的话就补充没有的依赖就行:

<dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

        <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>

        <!--logstash for elk -->
        <dependency>
            <groupId>net.logstash.logback</groupId>
            <artifactId>logstash-logback-encoder</artifactId>
            <version>5.2</version>
        </dependency>

        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-zipkin</artifactId>
            <version>2.2.8.RELEASE</version>
        </dependency>

配置日志输出格式

在resources目录下创建logback.xml,然后添加内容

<?xml version="1.0" encoding="UTF-8"?>
        <!--该日志将日志级别不同的log信息保存到不同的文件中 -->
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml" />

<springProperty scope="context" name="springAppName"
                source="spring.application.name" />

<!-- 日志在工程中的输出位置 -->
<property name="LOG_FILE" value="${BUILD_FOLDER:-build}/${springAppName}" />

<!-- 控制台的日志输出样式 -->
    <property name="CONSOLE_LOG_PATTERN"
              value="%clr(%d{yyyy-MM-dd HH:mm:ss.SSS}){faint} %clr(${LOG_LEVEL_PATTERN:-%5p}) %clr(${PID:- }){magenta} %clr(---){faint} %clr([%15.15t]){faint} %clr(%-40.40logger{39}){cyan} %clr(:){faint} %m%n${LOG_EXCEPTION_CONVERSION_WORD:-%wEx}"/>
<!-- 控制台输出 -->
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
    <filter class="ch.qos.logback.classic.filter.ThresholdFilter">
        <level>INFO</level>
    </filter>
    <!-- 日志输出编码 -->
    <encoder>
        <pattern>${CONSOLE_LOG_PATTERN}</pattern>
        <charset>utf8</charset>
    </encoder>
</appender>

<!-- 为logstash输出的JSON格式的Appender -->
<appender name="logstash"
          class="net.logstash.logback.appender.LogstashTcpSocketAppender">
    <destination>127.0.0.1:5044</destination>
    <!-- 日志输出编码 -->
    <encoder
            class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder">
        <providers>
            <timestamp>
                <timeZone>UTC</timeZone>
            </timestamp>
            <pattern>
                <pattern>
                    {
                    "severity": "%level",
                    "service": "${springAppName:-}",
                    "trace": "%X{traceId:-}",
                    "span": "%X{spanId:-}",
                    "parent": "%X{parentId:-}",
                    "exportable": "%X{sampled:-}",
                    "pid": "${PID:-}",
                    "thread": "%thread",
                    "class": "%logger{40}",
                    "rest": "%message"
                    }
                </pattern>
            </pattern>
        </providers>
    </encoder>
</appender>

<!-- 日志输出级别 -->
<root level="DEBUG">
    <appender-ref ref="console" />
    <appender-ref ref="logstash" />
</root>
</configuration>

在xml文件中配置上述的内容中,需要注意的是<destination>127.0.0.1:5044</destination>这个地址要配置的就是之前我们启动的ELK地址。

之后就使用postman调用两个请求,然后就可以在ELK界面上看到日志信息了:

image.png

相关文章

网友评论

    本文标题:SpringCloud之Sleuth-8.集成ELK(2)

    本文链接:https://www.haomeiwen.com/subject/recygltx.html