存在显着 IO 延迟时的 logger 语句时间戳

问题描述

我们知道,在任何 Java 日志记录框架中,我们都会获取 logger 语句的时间戳,并打印在语句前面的日志文件中。我想了解导出和记录的时间,时间是-写入日志文件的日志语句,还是JVM中执行日志语句的时间。如果 IO 有任何延迟,那么我们可以看到这些时间戳之间的差异。 Log4j/Slf4j 中是否有任何可用的配置来设置它?

解决方法

当您调用 Logger 日志方法之一时,会创建一个 LoggingEvent。根据 source codeLoggingEvent 的时间戳是在创建事件时设置的。该时间戳是出现在格式化日志消息中的内容。

日志后端中的 I/O 延迟不应影响时间戳。