我们有使用log4j生成日志的进程,并且一些日志条目应该被加载到数据库中以进行分析和报告(现在一切都将转到文件中)。问题是其中一些进程无法访问数据库。因此,我们的想法是每个进程都生成一个文件,然后由另一个有权访问数据库的进程发送/读取。
此文件的首选格式是标准的log4j文本格式,因此同一个文件既可以由在DB中加载它的进程使用,也可以由真人阅读它。所以问题是:是否存在现有的日志文件解析器(理想情况下是java库)?我们不想花时间编写解析器。
另一个解决方案是生成两个文件,一个用于人类阅读,另一个用于序列化的log4j日志记录事件,可以很容易地反序列化,但是现在我的管理层不买这个...... / p>
可能还有其他我没有看到的解决方案,欢迎任何建议
答案 0 :(得分:2)
jlibs中的grepLog模块为日志文件提供grep功能。 你必须在xml文件中定义日志记录的样子。您可以在http://code.google.com/p/jlibs/source/browse/trunk/greplog/resources/schemas/header.xsd
找到此架构答案 1 :(得分:0)
有很多“日志管理”产品。一个简单的谷歌搜索应该会给很多点击。 我听说过关于splunk和锯木厂的事情,但我没有在真实的生产环境中试过它们。
答案 2 :(得分:0)
您可以编写一个自定义appender,生成可以在以后运行的SQL语句或其他一些易于解析的格式。