将几行 tomcat access-logs 合并为一行

将几行 tomcat access-logs 合并为一行

我需要你的帮助。我想在我的阿帕奇 Tomcat网络服务器SLES 12。他正在运行,并且正在正常记录。但是当我访问该网站时,tomcat 正在将 8 行写入文件localhost_access_log.txt。如下所示:

10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET / HTTP/1.1" 200 11250 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /tomcat.css HTTP/1.1" 200 5576 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /tomcat.png HTTP/1.1" 200 5103 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /favicon.ico HTTP/1.1" 200 21630 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-nav.png HTTP/1.1" 200 1401 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /asf-logo.png HTTP/1.1" 200 17811 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-middle.png HTTP/1.1" 200 1918 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-button.png HTTP/1.1" 200 713 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /bg-upper.png HTTP/1.1" 200 3103 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /favicon.ico HTTP/1.1" 206 21630 10.XXX.XX.XXX - - [27/Jul/2016:08:28:29 +0200] "GET /favicon.ico HTTP/1.1" 200 21630

当我以管理员身份登录时也是一样,然后tomcat写了5行。

10.XXX.XX.XXX - - [27/Jul/2016:10:37:01 +0200] "GET /manager/status HTTP/1.1" 401 2473 10.XXX.XX.XXX - admin [27/Jul/2016:10:37:02 +0200] "GET /manager/status HTTP/1.1" 200 7010 10.XXX.XX.XXX - - [27/Jul/2016:10:37:03 +0200] "GET /manager/images/tomcat.gif HTTP/1.1" 200 2066 10.XXX.XX.XXX - - [27/Jul/2016:10:37:03 +0200] "GET /manager/images/asf-logo.gif HTTP/1.1" 200 7279 10.XXX.XX.XXX - - [27/Jul/2016:10:37:03 +0200] "GET /favicon.ico HTTP/1.1" 200 21630

现在我的问题是:tomcat 有可能每次访问只写一行吗?或者 tomcat 以个人格式写入日志?因为我想用以下方式分析访问日志graylog2而grayog 对此有一些疑问。

答案1

虽然有点晚了但还是可以的。

我认为你不能减少日志文件中的行数,但为了进行分析,你可以过滤掉一些行

egrep -v ' /tomcat.[^\b]{3}|/favicon.ico| /[^\.]*.png' acces.log > filtered.log

在哪里

  • egrep -v从输出行中删除与模式匹配的行
  • /tomcat.[^\b]{3}:一个空格,/tomcat 字符串一个点和 3 个非空格
  • /favicon.ico直截了当
  • /[^\.]*.png一个空格、一个斜线、任意数量的非点和 png

当然,日志分析仪可能有一些预先构建的过滤器,或者您可能需要花一些时间对其进行定制。

相关内容