Spring Boot 3.4内置结构化日志+Logstash:无额外依赖缩减异常行长度?
Spring Boot 3.4 内置结构化日志结合Logstash缩减异常日志行方案
可以实现,而且完全不需要额外添加依赖,Spring Boot 3.4已经内置了替代原有ShortenedThrowableConverter的能力,具体配置方式如下:
- 直接使用Spring Boot自带的异常栈转换器
org.springframework.boot.logging.logback.converter.ShortenedThrowableConverter,它和你之前用的Logstash转换器功能一致,支持设置日志长度上限等参数。 - 在Logback的配置文件(如
logback-spring.xml)中,针对Logstash的JSON输出编码器配置该转换器:
<appender name="LOGSTASH" class="ch.qos.logback.core.ConsoleAppender"> <encoder class="net.logstash.logback.encoder.LoggingEventCompositeJsonEncoder"> <providers> <!-- 其他结构化日志字段配置 --> <timestamp/> <level/> <message/> <loggerName/> <!-- 异常栈处理配置 --> <throwable> <converter class="org.springframework.boot.logging.logback.converter.ShortenedThrowableConverter"> <maxLength>10000</maxLength> <!-- 可选:添加其他精简配置,比如缩短类名长度、排除特定包栈帧 --> <!-- <shortenedClassNameLength>20</shortenedClassNameLength> --> <!-- <excludePackages>com.example</excludePackages> --> </converter> </throwable> </providers> </encoder> </appender>
说明:
- Spring Boot 3.4已将
logstash-logback-encoder整合到spring-boot-starter-logging依赖中,无需单独引入; - 内置转换器支持所有你之前用到的参数,还可根据需求添加自定义配置进一步精简异常日志内容。
内容的提问来源于stack exchange,提问作者Vegard
相关产品推荐
相关产品推荐

