SpringBoot日志跟踪

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SpringBoot日志跟踪相关的知识,希望对你有一定的参考价值。

参考技术A

随着分布式的发展,开发问题排查过程的日志分析逐渐复杂,现在一般通过ELK系统整合分布式系统的所有日志进行分析,此时需要一个全局的日志id进行链路跟踪。

Log4j和Logback提供MDC,可以实现基于ThreadLocal级别的数据存储,从而实现系统内部同一线程日志打印的traceId一致性

备注:如需在系统内的多线程实现日志一致性,则可以通过进行参数传递方式传输traceId

日志配置xml中使用[%XtraceId]引用日志id

当前服务中相同线程打印日志都会带上日志id,如需要使用线程池或异步线程处理业务,请自行传入参数或进行线程间的数据传输

先使用过滤器从请求头获取traceId,存储到HystrixRequestVariableDefault中,

然后拦截器中获取到traceId,加入RequestTemplate的请求头中

本教程通过过滤器、拦截器结合HystrixRequestVariableDefault实现系统内和跨系统的日志跟踪。

服务器日志在哪里

【中文标题】服务器日志在哪里【英文标题】:where is server log 【发布时间】:2017-08-21 12:09:34 【问题描述】:

在 Spring Boot 项目中,当我在 tomcat 网络服务器上运行该项目时,它会给出以下异常。 这是堆栈跟踪的一部分,在最后一行显示“查看服务器日志以了解详细信息”,但我找不到要查找服务器日志的位置。我检查了日志文件(我的意思是这个地址:apache-tomcat-8.5.9\logs),这个路径是空的。

注意:它运行成功,但我不知道是什么更改使它不再成功运行。

28-Mar-2017 16:25:35.336 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal One or more listeners failed to start. Full details will be found in the appropriate container log file
28-Mar-2017 16:25:35.337 SEVERE [RMI TCP Connection(3)-127.0.0.1] org.apache.catalina.core.StandardContext.startInternal Context [] startup failed due to previous errors
[2017-03-28 04:25:35,375] Artifact cardservice:war exploded: Error during artifact deployment. See server log for details.

【问题讨论】:

正如@luboskrnac 所说,它位于catalina.out 内部。但是,您可能会使用 IDE 启动 tomcat,它会在其中创建新的 tomcat 实例,在这种情况下,tomcat 日志文件将位于 IDE 目录中的某个位置。此外,在这种情况下,您将能够在 IDE 中查看日志。此外,您可能有许多 tomcat 文件夹(实例)并且您正在启动 tomcatA,并尝试在 tomcatB 中搜索日志。一旦发生在我身上。 【参考方案1】:

它很可能位于名为 catalina.out 的 Tomcat 日志文件中。

【讨论】:

那个文件在哪里? @user5621266 默认情况下,该文件应该在您的 Tomcat 文件夹中 > 日志,例如 ~/apache-tomcat-8.5.20/logs/catalina.out

以上是关于SpringBoot日志跟踪的主要内容,如果未能解决你的问题,请参考以下文章

SpringBoot+MDC实现全链路调用日志跟踪,这才叫优雅!

在 Spring Boot 应用程序中防止自定义异常的堆栈跟踪日志记录

springboot 使用logback按业务进行日志分离

SpringBoot实战 之 接口日志篇

spring cloud sleuth 如何将跟踪信息添加到 logback 日志行

SpringBoot.06.SpringBoot日志管理