许多 Java 应用程序的集中式日志记录:系统日志 vs JMS vs Http vs 本地文件
我希望我的所有应用程序日志都是集中的(理想情况下是近乎实时的)。我们将使用 Log4 追加器。我应该使用哪一个:
- 在 JMS 队列中发送日志事件
- 系统日志 / 系统日志-ng
- 写入本地文件并使用 rsync(每 3 秒)复制日志
- 对集中式 REST Http 服务执行 POST 操作
您使用的是哪一个?
我希望我的所有应用程序日志都是集中的(理想情况下是近乎实时的)。我们将使用 Log4 追加器。我应该使用哪一个:
您使用的是哪一个?
取决于您的要求。记录到队列(如在 JMS 中)为您提供了最大的选项灵活性,因为一旦将日志消息写入队列,您的日志操作就可以返回。然后,您可以让另一个进程将这些日志消息从队列中取出,并将它们写入首选的日志记录存储(数据库,文件系统等)。
(轻微的)缺点是您的日志消息将略微滞后于正在日志记录的系统,但几乎总是如此,即使使用基于文件的日志记录也是如此。