有多少项目在 log4j2 中使用 Async Logger?

How many projects use Async Logger in log4j2?

log4j2 中的异步记录器可以大大提高记录性能,但它们是否足够健壮?当程序被意外杀死时,那个时间点之前的日志消息会被刷入磁盘吗?有谁知道有多少大项目(例如 apache 项目)使用异步记录器并举一些例子?任何帮助将不胜感激。

当任何进程终止时,您很可能会丢失正在缓冲的日志事件。大多数使用 File Appenders 的人都会打开缓冲,因为没有它的性能会相当慢。在这种情况下,OS 缓冲区中的事件将会丢失。与大多数网络协议类似,除非您使用 Apache Flume 之类的东西,它会立即确认收到,但即便如此,一些消息也可能会丢失,因为进程在写入数据之前就死了。但是 比我更好地涵盖了丢失消息的主题。

至于谁在使用它,我只能回答我们知道 Async Loggers 正在被使用,因为我们确实不时收到问题,但没有办法正式跟踪谁在使用任何开源项目,更不用说怎么样。

我的公司将 Async Loggers 用于任务关键型股权交易系统,没有出现任何问题。