【发布时间】:2021-07-10 18:14:36
【问题描述】:
我想设计一个日志分析器,我将在其中向 java 程序提供 application.log 文件,它将 解析日志文件并尝试捕获几个字段,如时间、IP 地址、状态代码(200/401/500 等)、请求类型(GET/POST/PUT 等)等。我想将它存储在我的某个数据库中以后可以用它来做一些分析。
我有几个问题需要进一步了解。
- java 中有没有用于解析日志文件的实用程序?
- 我应该使用 sql 还是不使用 sql DB 来存储这些数据?
- 如何处理解析 500 MB 这样的大文件?
- 我应该使用多线程来更快地读取文件吗?
文件的样本输入可以是
84.55.41.57 - - [16/Apr/2016:20:21:56 +0100] "GET /john/assets/js/skel.min.js HTTP/1.1" 200 3532 "http://www.example.com/john/index.php" "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"
84.55.41.57 - - [16/Apr/2016:20:21:56 +0100] "GET /john/images/pic01.jpg HTTP/1.1" 200 9501 "http://www.example.com/john/index.php" "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"
84.55.41.57 - - [16/Apr/2016:20:21:56 +0100] "GET /john/images/pic03.jpg HTTP/1.1" 200 5593 "http://www.example.com/john/index.php" "Mozilla/5.0 (Windows NT 6.0; WOW64; rv:45.0) Gecko/20100101 Firefox/45.0"
【问题讨论】:
标签: java spring-boot logging log-analysis