Apache Log4j2 在异步模式下的实现使用 RingBuffer 来缓冲所有日志内容。默认情况下使用 262144 个插槽 (256 * 1024)。这会导致初始内存保留约为 40 MB,并且在内存有限的环境中会导致内存头始终已满,从而导致启动速度变慢。
要减少内存使用量,请通过设置系统属性来减少 RingBuffer 大小(槽数):
log4j2.asyncLoggerRingBufferSize=value
Run Code Online (Sandbox Code Playgroud)
最小大小为 128。要分配 5Mb,请将值设置为 32768。有关更多信息,请参阅Log4j 异步记录器。