我正在使用Java,Spring,Hibernate,slf4j,log4j,Oracle数据库堆栈开发中间件应用程序。目前我将输出记录到文本文件。我想将日志存储在数据库中以进行故障排除。我尝试使用log4j db appender直接登录db,但我发现性能太慢了。所以现在我让log4j附加到一个文件,在一个单独的线程中,我逐行读取日志文件并插入到数据库中。此方法不会太慢,也不会影响主应用程序的性能。
我的问题是,是否有其他人有更好的想法,或者有更好的方法吗?我不想使用任何工具,如loggy或splunk,因为为了我的目的,这些工具是一种矫枉过正。我想知道我可以使用的任何本土技术。
答案 0 :(得分:1)
我知道你说过你不想使用外部工具,但我认为这是一个错误。您为日志创建定制解决方案所付出的努力已经由其他人制定,并且将提供比您更好的更有效和更强大的解决方案。
对于初学者来说,将日志文件加载到数据库中只是为了使它们更易于搜索是一个坏主意。然后,您将面临运行数据库并加载所有文件的性能开销,以及必须编写和测试所有代码才能执行此操作。
我建议您查看logstash工具。
如果您决定使用加载解决方案然后再使用数据库,那么您需要提供一些有关您打算使用的数据库类型的信息。