我有一些巨大的日志文件(50Mb;〜500K行)我需要开始过滤一些垃圾了。日志文件正在使用log4j的生产,并有基本的模式:我正在寻找一种方式,我可以找出一个正则表达式的开始和结束的正则表达式(或类似的东西),将筛选出匹配通过定义正则表达式筛选日志文件
[log-level] date-time class etc, etc
log-message
来自该文件的条目,以便我可以更轻松地浏览这些大量文件。我的想法是,开始的正则表达式应该是日志级别,最终的正则表达式应该是日志消息中的东西。我确信我可以编写一个Java程序来完成这个任务,但是我认为在走下这条路之前我会问社区。提前致谢。
让我扩展我的问题。假设我在日志文件中的以下片段:
[DEBUG] date-time class etc, etc
log-message-1
[WARN] date-time class etc, etc
log-message-2
[DEBUG] date-time class etc, etc
log-message-3
[DEBUG] date-time class etc, etc
log-message-1
[WARN] date-time class etc, etc
log-message-2
[DEBUG] date-time class etc, etc
log-message-6
我想一个办法可以过滤掉logEntry1和logEntry2所以我结束了:
[DEBUG] date-time class etc, etc
log-message-3
[DEBUG] date-time class etc, etc
log-message-6
我希望做到这一点定义一些正则表达式模式对。在我上面的例子中,我想为logEntry1定义一对,为logEntry2定义另一个。
我希望这有助于澄清我的问题。
这将是一个很好的添加一个更具体的例子。 [日志级别]有哪些可能性?你怎么知道日志消息行何时完成,另一个项目何时开始?帮助我们来帮助你。闻起来像gawk或perl,但需要更多的信息。 – 2010-03-17 17:35:20
日志级别值:DEBUG,INFO,WARN,ERROR,FATAL 当遇到另一个日志级别时,日志消息完成。 – fmpdmb 2010-03-17 18:13:45
备案,50MB并不是那么庞大。 – 2010-03-17 18:15:36