我需要一些关于SLF4J日志记录的建议。
目前,我们正在使用SLF4J日志记录(log4j绑定)作为我们的Java Web应用程序,它使用简单的ConsoleAppender。我们的下一步是研究可以保存日志的地方。
我们的应用每天处理大约100,000封邮件。每条消息生成大约60-100行日志。我们的目标是能够快速搜索和查找失败的消息(使用messageId)并找出失败的原因。
我的问题是:以下哪个是存储日志的好地方:
感谢。
答案 0 :(得分:11)
考虑从log4j切换并使用slf4j API的logback实现 Logback有一个广泛的appenders可用列表。
我想也许您的问题更多的是关于使您的日志可搜索。答案取决于您要搜索的内容。
根据Sebastien的建议,还有一个Graylog2 appender用于回溯。现在可以在Maven Central中找到
<dependency>
<groupId>me.moocar</groupId>
<artifactId>logback-gelf</artifactId>
<version>0.9.6p2</version>
</dependency>
当然这取决于安装graylog2服务器。
答案 1 :(得分:0)
servlet规范中没有任何工具可以为您提供放置日志的文件系统位置。
因此,最强大的长期解决方案是简单地使用java.util.logging(使用slf4j绑定)并让web容器处理生成的日志。
您每天有大约1000万条日志条目。这意味着您需要小心资源使用。数据库通信比文件访问昂贵得多。我建议你介绍一下方法,看看你是否可以获得除夜间备份平面文件以外的任何其他内容所需的性能。