美文网首页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