SLF4J记录到文件与DB与Solr

sca*_*age 6 java logging solr log4j slf4j

我需要一些关于SLF4J日志记录的建议.

目前,我们正在使用SLF4J日志记录(log4j绑定)作为我们的Java Web应用程序,它使用简单的ConsoleAppender.我们的下一步是研究可以保存日志的地方.

我们的应用每天处理大约100,000封邮件.每条消息生成大约60-100行日志.我们的目标是能够快速搜索和查找失败的消息(使用messageId)并确定失败的原因.

我的问题是:以下哪个是存储日志的好地方:

  • 文件(S)
  • D B
  • Solr的

谢谢.

Mar*_*nor 11

考虑从log4j切换并使用slf4j API 的logback实现Logback有一个广泛的appender列表.

我想也许您的问题更多的是关于使您的日志可搜索.答案取决于您的搜索内容.

  • 对于简单的应用程序,我只使用滚动文件appender并为我感兴趣的消息grep.
  • 更复杂的应用程序还会将消息记录到数据库中.
  • 目前没有可用于log4j和logback的Solr appender.但是,使用solrj API 编写它应该很容易
  • 对于监视日志消息,有一个lilith,它是用于日志消息的远程GUI.不知道它的扩展程度如何,但它对于演示和简单监控来说无疑是有趣的.

更新

正如Sebastien所建议的那样,还有一个Graylog2 appender用于logback.现在可以在Maven Central中找到

<dependency>
    <groupId>me.moocar</groupId>
    <artifactId>logback-gelf</artifactId>
    <version>0.9.6p2</version>
</dependency>
Run Code Online (Sandbox Code Playgroud)

当然这取决于安装了graylog2服务器.