从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十四) spring boot/cloud +logback/log4j2 集成skywalking日志完整配置
Posted 峡谷电光马仔
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十四) spring boot/cloud +logback/log4j2 集成skywalking日志完整配置相关的知识,希望对你有一定的参考价值。
本文承接上文《从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十四) 集成skywalking 全链路追踪 完整配置,使用案例及全链路追踪底层原理》
本文主要内容
上文中主要是针对skywalking的部署介绍以及skywalking的链路追踪介绍 实际上,项目上很多时候我们不仅需要看见调用链路,也希望同时可以看见整条链路上的日志
因为微服务场景下,我们经常是几台甚至几十上百台服务器规模的节点部署,日志查看本身就是一个复杂问题
如果资源足够,我们可以使用elk+featbeat +kafka/redis 的日志收集展示模式,如果服务器充足
我一般是这么做的,但是实际上,并不是每个项目都会有这么优厚的资源给你,尤其是一些中小规模的项目
身为架构师,就要考虑换个方案了,由于本文主要基于skywalking ,所以: 本文主要介绍的的是skywalking 下,
logbak/log4j2 将日志发送到skywalking并可视化展示
完整配置以及代码
logback 集成skywalking 可视化日志完整配置
pom 依赖
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-trace</artifactId>
<version>8.7.0</version>
</dependency>
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-logback-1.x</artifactId>
<version>8.7.0</version>
</dependency>
log4j2 pom
logback-spring.xml 新增
<property name="log.pattern" value="%dyyyy-MM-dd HH:mm:ss.SSS [%thread] %-5level %logger50 - [%tid] - %msg%n"/>
<appender name="skywalking" class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.log.GRPCLogClientAppender">
<encoder class="ch.qos.logback.core.encoder.LayoutWrappingEncoder">
<layout class="org.apache.skywalking.apm.toolkit.log.logback.v1.x.mdc.TraceIdMDCPatternLogbackLayout">
<Pattern>%dyyyy-MM-dd HH:mm:ss.SSS [%Xtid] [%thread] %-5level %logger36 -%msg%n</Pattern>
</layout>
</encoder>
</appender>
<root level="INFO">
<appender-ref ref="console"/>
<appender-ref ref="debug"/>
<appender-ref ref="skywalking" />
</root>
log4j2 集成skywalking 可视化日志完整配置
pom 依赖
<dependency>
<groupId>org.apache.skywalking</groupId>
<artifactId>apm-toolkit-log4j-2.x</artifactId>
<version>8.7.0</version>
</dependency>
log4j2 xml 新增
<property name="file_pattern" value="%dyyyy-MM-dd HH:mm:ss [%traceId] [%thread] [%-5level] %msg %l%n" />
<property name="console_pattern" value="%red%dyyyy-MM-dd HH:mm:ss [%traceId] %green[%thread] %magenta[%-5level] %cyan%msg %l%n"/>
<property name="skyWalking_pattern" value="%msg %l%n"/>
<GRPCLogClientAppender name="skywalking">
<PatternLayout pattern="$skyWalking_pattern"/>
</GRPCLogClientAppender>
<Root level="info" includeLocation="false" additivity="false">
<AppenderRef ref="Console"/>
<AppenderRef ref="File"/>
<AppenderRef ref="skywalking" />
</Root>
idea或者jar 添加启动命令
-Dskywalking.plugin.toolkit.log.grpc.reporter.server_host=skywalking的ip
-Dskywalking.plugin.toolkit.log.grpc.reporter.server_port=11800
实测效果
篇基于minicloud《【万字原创】 从0~1实现 微服务下 下单/秒杀场景最终一致性解决方案(rocketmq):完整流程,模型,讲解,压测,部署介绍以及完整demo源码和源码说明(1)-整体介绍》的下单流程介绍,想看详细流程和代码的可以看一下
postman 进行一条请求,该请求会经过三个服务
进入skywalking 控制台 http://192.168.1.106:8080/
结语
如图可知日志被发送到了skywalking上(logback 和log4j2 在 skywalking 是一样的),
skywalking 最好配合elasticsearch 增加高并发负载能力
不过我建议大家在服务器资源充足的情况下尽量使用elk+filebeat/flume +kafka/redis
可以做到大型高并发项目日志无入侵收集以及自定义展示,我一般都用这个方案
以上是关于从0到1 手把手搭建spring cloud alibaba 微服务大型应用框架(十四) spring boot/cloud +logback/log4j2 集成skywalking日志完整配置的主要内容,如果未能解决你的问题,请参考以下文章
手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了
手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了
手把手教你,从零开始搭建Spring Cloud Alibaba!这份笔记太牛了
使用 IDEA 从 0 开始搭建 Spring Cloud 微服务