2010-03-06 35 views

回答

3

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

的(少量)的缺点是你的日志消息将略有滞后正在记录系统落后,但这是几乎总是这样,即使与基于文件的日志记录。

+0

你会说,发送字符串远程系统日志会比JMS + WMQ队列更快? 我知道,syslog-ng的可以确认该消息的接收,然后对事件进行其它路由(发送到文件,数据库,电子邮件等) – Aerosteak 2010-03-06 16:05:04

+0

简单的答案是,我不知道,但我可以看到系统日志之中如果将其与使用持久性消息的JMS解决方案进行比较,则速度更快。如果你不需要持久的消息(丢失日志消息的可能性),那么你可以使JMS更快。最后,如果速度是需求,你需要衡量性能。 – SteveD 2010-03-06 20:13:35

1

我不熟悉Log4(Log4j?),但是它有数据库appender吗?这将提供您需要的集中化,并消除任何需要复制日志的需求。

0

这真的很大程度上取决于你想要什么。我不认为系统日志是应用程序日志一个不错的选择,虽然,它更适合于基础设施日志。不知道太多的细节,你列出的所有4个选项看起来OK。我们使用this

2

这可能是矫枉过正,但你看Splunk?对于Java应用程序,我使用Log4J或SLF4J登录到文件,然后Splunk可以聚合日志并使其可搜索。