解析log4j输出

时间:2012-02-08 19:29:58

标签: java parsing log4j logging

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

此文件的首选格式是标准的log4j文本格式,因此同一个文件既可以由在DB中加载它的进程使用,也可以由真人阅读它。所以问题是:是否存在现有的日志文件解析器(理想情况下是java库)?我们不想花时间编写解析器。

另一个解决方案是生成两个文件,一个用于人类阅读,另一个用于序列化的log4j日志记录事件,可以很容易地反序列化,但是现在我的管理层不买这个...... / p>

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

3 个答案:

答案 0 :(得分:2)

您可以尝试http://code.google.com/p/jlibs/source/browse/trunk/greplog/src/main/java/jlibs/util/logging/LogParser.java

jlibs中的grepLog模块为日志文件提供grep功能。 你必须在xml文件中定义日志记录的样子。您可以在http://code.google.com/p/jlibs/source/browse/trunk/greplog/resources/schemas/header.xsd

找到此架构

答案 1 :(得分:0)

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

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

答案 2 :(得分:0)

您可以编写一个自定义appender,生成可以在以后运行的SQL语句或其他一些易于解析的格式。