许多Java应用程序的集中日志记录:Syslog vs JMS vs Http vs Local文件

Aer*_*eak 13 java rest logging jms syslog

我希望我的所有应用程序日志都集中在一起(理想情况下是近乎实时的).我们将使用Log4 Appender.我应该使用哪一个:

  1. 在JMS队列中发送日志事件
  2. Syslog/syslog-ng
  3. 写入本地文件并使用rsync(每3秒)复制日志
  4. 对集中式REST Http服务执行POST

你在用哪一个?

Ste*_*veD 3

取决于您的要求。记录到队列(如 JMS 中)为您提供了最大的灵活性,因为一旦日志消息写入队列,您的日志操作就可以返回。然后,您可以自由地让另一个进程将这些日志消息从队列中取出,并将它们写入您首选的日志存储(数据库、文件系统等)。

(轻微的)缺点是您的日志消息将稍微落后于正在记录日志的系统,但情况几乎总是如此,即使使用基于文件的日志记录也是如此。