我希望我的所有应用程序日志都集中在一起(理想情况下是近乎实时的)。我们将使用Log4 Appender。我应该使用哪一个:
你在使用哪一个?
答案 0 :(得分:3)
取决于您的要求。记录到队列(如在JMS中)为您提供了最灵活的选项,因为日志消息一旦写入队列就可以返回日志操作。然后,您可以自由地让另一个进程将这些日志消息从队列中删除,并将它们写入首选的日志存储(数据库,文件系统......)。
(轻微)缺点是您的日志消息将略微落后于正在记录的系统,但即使使用基于文件的日志记录,也几乎总是如此。
答案 1 :(得分:2)
这可能有点矫枉过正,但你看过Splunk了吗?对于Java应用程序,我使用Log4J或SLF4J来记录文件,然后Splunk可以聚合日志并使它们可搜索。
答案 2 :(得分:1)
我不熟悉Log4(Log4j?),但它有数据库追加器吗?这将提供您所需的集中化,并且无需复制日志。
答案 3 :(得分:0)
这实际上在很大程度上取决于你想要的东西。我不认为syslog不是应用程序日志记录的好选择,它更适合基础架构日志。在不了解太多细节的情况下,您列出的所有4个选项都可以。我们使用this。
答案 4 :(得分:0)
btw,log4j确实有AsyncAppender,它使用队列和专用的消费者线程从中进行记录