2012-02-08 103 views
1

我们有使用log4j生成日志的进程,并且一些日志条目应该被加载到数据库中用于分析和报告(现在所有内容都将进入文件)。问题是,其中一些进程无法访问数据库。所以我们的想法是,每个进程都在生成一个文件,然后由另一个有权访问数据库的进程发送/读取该文件。解析log4j输出

该文件的首选格式是标准的log4j文本格式,这样相同的文件既可以被加载到数据库中的进程使用,也可以由真实的人读取。所以问题是:是否有一个现有的日志文件解析器(理想的是一个Java库)?我们不想花时间编写解析器。

另一种解决方案是生成两个文件,一个用于人类阅读,另一个用例如序列化的log4j日志记录事件,可以轻松地进行反序列化,但现在我的管理层不购买这个...

也有可能是我没有看到其他的解决方案,所以任何的建议是欢迎

+0

这里是一个类似的问题的链接:http://stackoverflow.com/questions/2327073/parse-a-log4j-log-file – breezee 2012-02-08 19:34:38

+0

我看到这一个,但答案指的是另一个appender(我想避免),UI工具(锯木厂,电锯)或手动解析,我想避免所有这些。 – Xavier 2012-02-08 20:18:52

回答

0

有很多的“日志管理”产品。一个简单的谷歌搜索应该给很多点击。 我听说过有关splunk和sawmill的事情,但我没有在真实的生产环境中试用过它们。

http://splunk-base.splunk.com/answers/767/how-do-i-setup-splunk-to-index-log4j-with-orgapachelog4jrollingfileappender

+0

这不是我正在寻找的。据我所知,splunk或sawmill正在将数据加载到他们自己的结构/数据库中,然后使用他们的报告/分析工具。在这里,我想要将数据加载到我们自己的自定义日志表中,以使用使用这些表的内部预先存在的工具。 – Xavier 2012-02-08 20:15:04

+0

如果你有一个专有的格式/数据库坚持我认为你坚持写你自己的解析器/数据库实现.. – 2012-02-08 20:21:16

0

您可以编写生成以后可以运行SQL语句或其它容易解析的格式自定义的appender。

+0

我想有相同的文件包含要解析的数据和数据是人类可读的。 SQL语句在人们看来有点可读,但在阅读日志时却不是真正用户友好的 – Xavier 2012-02-08 21:47:06