SpringBoot日志时间戳如何输出到微秒/纳秒级?
SpringBoot日志输出微秒/纳秒级时间戳解决方案
问题根源分析
你之前的配置存在两处关键错误:
- 日期格式中月份用了小写
mm(代表分钟),正确应为大写MM; - 微秒/纳秒的格式写法不符合Logback规范,逗号分隔的语法无效,且
DEFAULT_NANOS并非Logback预定义的日期模式。
SpringBoot默认集成Logback框架,而Logback 1.2.0+(SpringBoot 2.x及以上版本默认集成)支持基于java.time的日期格式化,可直接通过指定格式输出微秒/纳秒精度。
正确配置方式
方式1:直接在application.properties/application.yml中配置
纳秒精度(9位小数)
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSSSSSSSS} - %msg%n
微秒精度(6位小数)
logging.pattern.console=%d{yyyy-MM-dd HH:mm:ss.SSSSSS} - %msg%n
也可使用预定义的ISO格式(包含纳秒)
logging.pattern.console=%d{ISO_INSTANT} - %msg%n
方式2:自定义Logback配置文件(推荐,避免配置冲突)
创建src/main/resources/logback-spring.xml,内容如下:
<?xml version="1.0" encoding="UTF-8"?> <configuration> <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender"> <encoder> <!-- 这里可替换为你需要的微秒/纳秒格式 --> <pattern>%d{yyyy-MM-dd HH:mm:ss.SSSSSSSSS} - %msg%n</pattern> <charset>UTF-8</charset> </encoder> </appender> <root level="INFO"> <appender-ref ref="CONSOLE"/> </root> </configuration>
验证
启动SpringBoot应用后,日志输出的时间戳会显示为类似2024-05-20 14:30:45.123456789(纳秒)或2024-05-20 14:30:45.123456(微秒)的格式。
内容的提问来源于stack exchange,提问作者Himanshu Singh
相关产品推荐
相关产品推荐

