4

我和另一个帖子中描述的人有同样的问题。我的应用程序的日志文件很大(~1GB),使用 grep 来关联来自日志文件的信息很繁琐。现在我使用''less''工具,但它也比我想要的慢。

我正在考虑加快搜索速度。有以下方法可以做到这一点:首先,在 XML 中生成日志并使用一些 XML 搜索工具。我不确定使用 XML 搜索会获得多少加速(我猜不多,因为非索引文件搜索仍然需要很长时间)。

其次,使用XML 数据库。这会更好,但我在这里没有太多背景。

第三,使用(非 XML)数据库。这会有点乏味,因为必须编写表模式(是否也要为上面的第二个选项完成?)。我还预见到架构一开始会发生很大变化,以包括常见的用例。理想情况下,我想要比用于存储日志的成熟数据库更轻的东西。

第四,使用lucene。它似乎符合目的,但有没有一种简单的方法来指定当前用例的索引?例如,我想说“每当你看到‘迭代’这个词时就索引”。

你有什么意见?

4

5 回答 5

8

问题是使用 XML 会使您的日志文件更大我建议您按日期或行拆分日志文件,否则使用基于文件的数据库引擎,例如sqlite

于 2009-04-16T07:21:00.553 回答
6

千兆字节并没有那么大,真的。你想用这些日志文件做什么样的“相关性”?我经常发现编写自定义程序(或脚本)以特定方式处理日志文件比尝试提出数据库模式来处理您想要使用它做的所有事情更简单。当然,如果您的日志文件由于某种原因难以解析,那么尝试修复该方面可能是值得的。

(顺便说一句,我同意 kuoson 的观点——XML 几乎肯定不是要走的路。)

于 2009-04-16T07:33:10.977 回答
1

如果您可以在 Windows 上检查您的日志,或者使用 Wine,LogParser是一个从日志中挖掘数据的好工具,它实际上允许您在任何日志上运行 SQL 查询,而无需更改任何代码或日志格式,而且它甚至可以用来生成快速的 HTML 或 Excel 报告。

同样在几年前,当 XML 大肆宣传时,我正在使用 XML 日志和 XSLT 样式表来生成视图,它实际上还不错,但它占用了大量内存并且会阻塞大文件,所以你可能不会'不想使用 XML。

于 2009-04-16T07:29:27.583 回答
1

处理日志文件的麻烦在于必须单独查询每个文件,如果您可以创建日志文件的索引并搜索/查询,您将获得更清晰的响应。Lucene 将是我的下一个停靠港,然后是 solr。

于 2012-11-22T01:41:01.670 回答
0

也许您可以将日志加载到 Emacs 中(前提是您有足够的内存)并使用 Emacs 的各种功能,例如增量搜索和 Alt-X。

免责声明:我没有在大于 100MB 的文件上尝试过这个。

于 2009-04-16T08:04:45.627 回答