当前位置: 首页 > 知识库问答 >
问题:

Spring靴日志奇怪的方括号

笪欣嘉
2023-03-14

我一直在看到奇怪的方括号,无法找到和有关可能存在的内容的信息,日志看起来像这样:

--2022-08-23 08:47:44.882  INFO [,,,] 30446 --- [)-192.168.0.165] o.a.c.c.C.[Tomcat].[localhost].[/]       : Initializing Spring DispatcherServlet 'dispatcherServlet'
--2022-08-23 08:47:44.882  INFO [,,,] 30446 --- [)-192.168.0.165] o.s.web.servlet.DispatcherServlet        : Initializing Servlet 'dispatcherServlet'
--2022-08-23 08:47:44.922  INFO [,,,] 30446 --- [)-192.168.0.165] o.s.web.servlet.DispatcherServlet        : Completed initialization in 40 ms

正如您所看到的,在日志级别后面有带逗号的括号,在某些时候,括号中的信息如下所示:

DEBUG [,080578da-b973-450b-9cae-2c5900ab56fe,080578da-b973-450b-9cae-2c5900ab56fe,]

无法真正找到可能是什么,我使用的是默认的Spring启动日志记录模式,是否可以在不重新声明日志记录模式的情况下错误地使用MDC?如果是MDC问题,那么为什么括号中的任何值看起来像这样:080578da-b973-450b-9cae-2c5900ab56fe

我使用的记录器是Slf4j

共有1个答案

顾磊
2023-03-14

如果您使用Spring云侦探,可能会发生这种情况。春云侦探是一个框架,可以将以下内容添加到您的日志中:

  • 应用程序名称(来自spring.application.name属性)
  • 跟踪ID(每个用户发起的请求的唯一ID)
  • 跨度ID(工作单元的唯一ID)

这些ID可用于关联分布式系统(如微服务)中的日志消息,因为这些ID将从微服务传递到微服务。在文档中,您可以找到这样一个示例。

在您的例子中,您没有使用这些属性,这就是它们为空的原因。跟踪ID会在每次请求时自动生成,这就是为什么您有时会看到[,,][, XXX,]。如果您对这些跟踪/跨度ID不感兴趣,您可以删除sping-cloud d-sleuthsping-cloud d-starter-sleuth库。

 类似资料:
  • 我正在这样的控制器上播放视频: 即使在控制器被销毁并且不再使用之后,我每秒钟左右都会收到这条日志消息: 我不是在问如何隐藏这些日志。我知道如何通过将

  • 我一直在使用默认安装java版本的Amazon Linux EC2,如下所示: 每当运行Java独立程序(即你好世界)时,如下所示 它自动创建一个进程ID文件,例如1234,内容如下。当我用另一个Java版本指定另一个Java_home时,例如oracle java jdk1.7.0_71 文件未创建。 如果我运行默认的java,但作为另一个用户(根)文件没有创建。 有什么想法吗? 编辑:alia

  • 我正在迁移一个由liquibase管理的现有数据库。 我已经有了更新日志。该应用程序是一个Spring启动应用程序,我用更新了pom,并设置了Spring液化基属性。 我对一个空数据库进行了测试,运行正常,liquibase在应用程序启动时执行changelog并维护< code>DATABASECHANGELOG表。 现在我面临的问题是数据库已经存在于所有其他环境中,我只想在完成 liquiba

  • 我最近将log4j-1x升级到log4j-2.17.2。这是我的格式模式: 但输出如下: 2022-07-08T00:59:59,392[localhost]INFO[]-Quartz调度程序版本:1.8.5 我不确定在日志优先级之后,空方括号是从哪里来的<在上述情况下,代码>信息。如何在不影响格式的情况下删除它。

  • 我在firebase云功能中遇到了一个情况,其中只有第一个控制台。执行日志或firestore更新语句。 我还有其他类似的函数,在处理响应的方式上略有不同,但这没有任何问题 我已经检查了谷歌云控制台/Firebase控制台等,源代码似乎已经正确上传 我看到了另一个与这种情况相反的帖子。有人知道为什么会这样吗?

  • 问题内容: 当我运行以下代码时: 我希望按以下顺序获得输出: 但是我得到的却是相反的顺序: 谁能解释为什么输出顺序相反? ================ 另外,当我创建多个的实例时: 静态块 仅 在第一次执行。 问题答案: 这完全取决于初始化语句的执行顺序。您的测试表明此顺序为: 静态初始化块 实例初始化块 建设者 编辑 感谢您的评论,现在我可以引用JVM规范中的相应部分。这是详细的初始化过程。