Java 解析log4j输出

Java 解析log4j输出,java,parsing,log4j,logging,Java,Parsing,Log4j,Logging,我们有使用log4j生成日志的流程,并且一些日志条目应该加载到数据库中进行分析和报告(现在所有内容都将加载到文件中)。问题是其中一些进程没有访问数据库的权限。因此,我们的想法是,每个进程都在生成一个文件,然后该文件被另一个有权访问数据库的进程发送/读取 该文件的首选格式是标准的log4j文本格式,因此,在数据库中加载该文件的进程和真实用户都可以使用该文件。所以问题是:是否存在现有的日志文件解析器(理想情况下是java库)?我们不想花时间编写解析器 另一个解决方案是生成两个文件,一个供人读取,另一

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

该文件的首选格式是标准的log4j文本格式,因此,在数据库中加载该文件的进程和真实用户都可以使用该文件。所以问题是:是否存在现有的日志文件解析器(理想情况下是java库)?我们不想花时间编写解析器

另一个解决方案是生成两个文件,一个供人读取,另一个带有序列化的log4j日志事件,可以轻松反序列化,但目前我的管理层不买账

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

有很多“日志管理”产品。一个简单的谷歌搜索应该会有很多点击率。 我听说过splunk和sawmill,但我还没有在实际生产环境中试用过


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

您可以尝试

jlibs中的grepLog模块为日志文件提供grep功能。
您必须定义日志记录在xml文件中的外观。你可以在

找到这个问题的模式,这里有一个类似问题的链接:我看到了这个问题,但答案是指另一个appender(我想避免)、UI工具(锯木厂、链锯)或手动解析,我想避免所有这些。这不是我真正想要的。据我所知,splunk或sawmill正在他们自己的结构/DB中加载数据,然后使用他们的报告/分析工具。在这里,我想将数据加载到我们自己的自定义日志表中,使用使用这些表的内部、预先存在的工具。如果您要遵守专有格式/db,我想您必须编写自己的解析器/db实现。我想使用相同的文件,其中包含要解析的数据和人类可读的数据。SQL语句在某种程度上是人类可读的,但在读取日志时并不是真正的用户友好