我们有一些使用log4j生成日志的进程,并且某些日志条目应该加载到数据库中进行分析和报告(目前所有内容都将保存到文件中)。问题在于其中一些进程无权访问数据库。因此,我们的想法是,每个进程都在生成一个文件,然后该文件将发送到另一个有权访问该数据库的进程,并由另一个进程读取。
该文件的首选格式是标准的log4j文本格式,因此,将相同的文件既可以用于将其加载到DB中的过程,也可以用于实际的人中,以供其读取。所以问题是:是否存在现有的日志文件解析器(最好是Java库)?我们不想花费时间来编写解析器。
另一种解决方案是生成两个文件,一个文件供人类读取,另一个文件具有例如可以很容易反序列化的序列化log4j日志记录事件,但是目前我的管理层不购买此文件。
我可能还没有看到其他解决方案,因此欢迎提出任何建议
最佳答案
您可以尝试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上找到其架构