日志输出中级别旁两个逗号[,,]的来源技术咨询
[,,]的排查思路 从你提供的日志示例和格式修改后的结果来看,[,,]的出现和LOG_LEVEL_PATTERN的定义直接相关,核心原因是格式串里的空占位符拼接,具体排查方向如下:
检查
LOG_LEVEL_PATTERN的配置值
大概率是这个变量里包含了用逗号分隔的MDC(映射诊断上下文)占位符,比如%X{traceId},%X{spanId}。当这些MDC变量没有被赋值(比如未启用链路追踪、代码里没设置对应值),就会变成空字符串,最终拼接出[,,]的格式。比如配置如果是%5p [%X{traceId},%X{spanId}],空值时就会输出DEBUG [,,]。排查链路追踪组件的配置
如果项目引入了Spring Cloud Sleuth、OpenTelemetry这类链路追踪依赖,但没有正确启用或者配置不完整,会导致traceId、spanId这类MDC变量无法生成有效值,进而在日志格式中留下空占位符的逗号。检查自定义日志格式的误写
如果你手动修改过日志格式(比如logback-spring.xml、log4j2.xml里的PatternLayout),可能不小心写入了多个连续的逗号占位符,比如错误定义了[%X{customField},%X{anotherField}]但这两个字段从未被设置过值。查看日志框架的默认配置注入
部分Spring Boot starter包会默认给日志格式添加traceId/spanId的占位符,即使你没显式启用链路追踪功能,这些空占位符依然会保留,从而产生[,,]的输出。
内容的提问来源于stack exchange,提问作者naturzukunft

