通过定义正则expression式筛选日志文件【JAVA教程】

!
也想出现在这里? 联系我们
信息

通过定义正则expression式筛选日志文件,第1张

概述通过定义正则expression式筛选日志文件

我有一些巨大的日志文件(50Mb;〜500K行)我需要开始过滤一些垃圾了。 日志文件正在使用log4j生成,并具有以下基本模式:

[log-level] date-time class etc,etc log-message

我正在寻找一种方法,我可以识别正则Expression式开始和正则Expression式结束(或类似的),将过滤出匹配的条目从文件,所以我可以更容易地通过这些巨大的文件。 我的想法是,开始正则Expression式将是日志级别和最终正则Expression式将在日志消息中的东西。 我确信我可以编写一个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-6

我想要一个方法来过滤logEntry1和logEntry2,所以我最终:

在没有F12工具的情况下在Internet Explorer上恢复JavaScript日志和错误

禁用Apache日志access.log

快速远程logging系统?

在linux shell上显示特定的日志文件部分

Nginx错误日志格式文件

[DEBUG] date-time class etc,etc log-message-6

我希望能够完成这个定义一些正则Expression式模式对。 在我上面的例子中,我想为logEntry1定义一对,为logEntry2定义另一个。

我希望这有助于澄清我的问题。

ncurses是一个很好的select,在linux中的C程序中实现命令历史logging

用户花费在页面上的时间

Python在windows中使用多处理进行日志logging

Python与多处理日志logging,根logging器在windows中不同

windows中的Nginx $ request_time和$ upstream_response_time

假设log-message-1和log-message-2和独特的模式。

$ awk -vRS= \’!/log-message-[12]/\’ ORS=\”nn\” file [DEBUG] date-time class etc,etc log-message-6

(zyx:~) % echo $T [DEBUG] date-time class etc,etc log-message-6 (zyx:~) % echo $T | perl -e \’$_=join(\”\”,<>); s/[DEBUG][^n]*n(log-message-1|log-message-2).*?(?=n[(DEBUG|WARN)]|$)//sg; s/[WARN].*?(?=n[(DEBUG|WARN)]|$)//sg; print;\’ [DEBUG] date-time class etc,etc log-message-6

使用awk或awk风格的perl单线程。

总结

以上是内存溢出为你收集整理的通过定义正则expression式筛选日志文件全部内容,希望文章能够帮你解决通过定义正则expression式筛选日志文件所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

© 版权声明
THE END
喜欢就支持一下吧
点赞164 分享
评论 抢沙发

请登录后发表评论

    请登录后查看评论内容