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 应用程序中防止自定义异常的堆栈跟踪日志记录