肯德基网站开发,亚马逊关键词排名提升,濮阳微信网站建设,如何做好电商销售大家都知道Skywalking 的链路追踪功能非常强大#xff0c;可以帮助用户深入了解应用程序中各个组件之间的依赖关系。在实际应用中#xff0c;往往需要将链路追踪数据与日志数据结合起来进行综合分析。Skywalking 提供了 Trace Log 结合插件#xff0c;可以帮助用户快速定位问…
大家都知道Skywalking 的链路追踪功能非常强大可以帮助用户深入了解应用程序中各个组件之间的依赖关系。在实际应用中往往需要将链路追踪数据与日志数据结合起来进行综合分析。Skywalking 提供了 Trace Log 结合插件可以帮助用户快速定位问题。Skywalking 支持多种日志采集方式包括 Log4j、SLF4J、Logback 等常见的 Java 日志框架。此外还支持通过 TCP、UDP、HTTP 等协议传输日志数据。用户可以根据实际需求选择合适的采集方式和传输协议。本文以Skywalking 采集Log4j 2 日志为例给大家演示完整的日志采集的配置过程。
Skywalking 采集springboot 应用日志
skywalking 版本9.3.0
Pom.xml 配置
dependencygroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter/artifactIdexclusions!—特别重要 特别重要 特别重要 SpringBoot 默认携带自身的 log 日志功能,去掉默认配置 --exclusiongroupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-logging/artifactId/exclusion/exclusions/dependencydependency !-- 引入log4j2依赖 --groupIdorg.springframework.boot/groupIdartifactIdspring-boot-starter-log4j2/artifactId/dependencydependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-log4j-2.x/artifactIdversion9.1.0/version/dependencydependencygroupIdorg.apache.skywalking/groupIdartifactIdapm-toolkit-trace/artifactIdversion9.1.0/version/dependency
在src\main\resources 根目录下创建文件log4j2.xml
?xml version1.0 encodingUTF-8?Configuration statusINFOAppenders!-- 控制台输出 --Console nameConsole targetSYSTEM_OUTPatternLayout pattern%d [%traceId] %-5p %c{1}:%L - %m%n//Console!-- skywalking grpc 日志收集 8.4.0版本开始支持 --GRPCLogClientAppender namegrpc-logPatternLayout pattern%d{HH:mm:ss.SSS} [%t] %-5level %logger{36} - %msg%n//GRPCLogClientAppender/AppendersLoggersRoot levelINFOAppenderRef refConsole/AppenderRef refgrpc-log//Root/Loggers/Configuration
在上面的配置文件中
%traceId 代表traceid的值
其他PatternLayout 的常见参数含义如下
%r : 程序从开始之后跑的时间
%t : 发出日志请求的线程
%-10p : 日志level,”-“号为向左对齐10为显示的长度
%c : logger的名字,通常就是所在类的全名后面加上{2}可指定只输出的全名的最后两个
%m : 日志信息
%n : 换行
%d : 日期
%l : 位置
%L: 输出代码中的行号
%X{variableName} : 输出和当前线程相关联的NDC(嵌套诊断环境){指定变量名输出}
代码中只需要正常使用log4j2的api 写代码即可
import org.apache.skywalking.apm.toolkit.trace.ActiveSpan;import org.apache.skywalking.apm.toolkit.trace.TraceContext;import org.slf4j.Logger;import org.springframework.web.bind.annotation.GetMapping;import org.springframework.web.bind.annotation.RequestParam;import org.springframework.web.bind.annotation.RestController;RestControllerpublic class HelloWorld {private static final Logger logger org.slf4j.LoggerFactory.getLogger(HelloWorld.class );GetMapping(/kevin)public String helloworld(){logger.info(*****info*****: call helloworld);return Hello World ;}GetMapping(/kevin/login)public String login(RequestParam(valuename,requiredtrue) String name, RequestParam(valuepassword,requiredtrue) String pwd){logger.info(*****info*****: call login);try {Thread.sleep(3000);} catch (InterruptedException e) {// TODO Auto-generated catch blocke.printStackTrace();}return name pwd;}}
完整的工程代码下载地址
https://download.csdn.net/download/liwenxiang629/88799617?spm1001.2014.3001.5503
skywalking 中的应用日志显示 然后调用几次api 以后就可以在skywalking的oap 中看到输出的日志信息了 点击上图中的相关日志显示结果如下 我的每一篇文章都希望帮助读者解决实际工作中遇到的问题如果文章帮到了您劳烦点赞、收藏、转发您的鼓励是我不断更新文章最大的动力