Java 将输出记录到数据库中

Java 将输出记录到数据库中,java,spring,logging,persistence,Java,Spring,Logging,Persistence,我正在使用Java、Spring、Hibernate、slf4j、log4j、OracleDB堆栈开发一个中间件应用程序。目前我将输出记录到文本文件。我想在数据库中存储日志,以便进行故障排除。我尝试使用log4j db appender直接登录到db,但发现性能太慢。所以现在我让log4j附加到一个文件中,并在一个单独的线程中逐行读取日志文件并插入数据库。这种方法不会太慢,也不会影响主应用程序的性能 我的问题是,还有其他人有更好的想法吗?或者有更好的方法吗?我不想使用任何像Logy或splunk

我正在使用Java、Spring、Hibernate、slf4j、log4j、OracleDB堆栈开发一个中间件应用程序。目前我将输出记录到文本文件。我想在数据库中存储日志,以便进行故障排除。我尝试使用log4j db appender直接登录到db,但发现性能太慢。所以现在我让log4j附加到一个文件中,并在一个单独的线程中逐行读取日志文件并插入数据库。这种方法不会太慢,也不会影响主应用程序的性能


我的问题是,还有其他人有更好的想法吗?或者有更好的方法吗?我不想使用任何像Logy或splunk这样的工具,因为就我而言,这些工具是多余的。我想知道我可以使用的任何国产技术。

我知道你说过你不想使用外部工具,但我认为这是一个错误。您为您的日志创建定制解决方案所付出的努力已经由其他人完成,并且将提供比您所能提供的更高效、更健壮的解决方案

对于初学者来说,将日志文件加载到数据库中只是为了让它们更易于搜索是个坏主意。然后,运行数据库和加载所有文件会带来性能开销,此外还需要编写和测试所有代码来完成这项工作

我建议您查看logstash工具


如果您决定采用先加载后加载到数据库的解决方案,那么您需要提供有关打算使用哪种类型的数据库的一些信息。

我使用Oracle db存储日志。同时,我将看一看logstash工具。谢谢。我想在这里更新一下,我最终使用了Logstash服务器。我的组织已经有一个日志存储服务器设置,我只需要配置日志文件的位置。只是一个跟进。最后,我编写了自己的日志阅读器来读取文件并将有用的信息插入数据库。