tidyverseパッケージを読み込んで、read_log関数を使うと簡単にtibbleにすることができる。以下、例。
以下15行からなるサンプルのログファイル(access.log)をカレントディレクトリに置く。
192.168.12.2 - - [06/Dec/2024:23:51:07 +0900] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
192.168.12.2 - - [06/Dec/2024:23:51:07 +0900] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
192.168.12.2 - - [06/Dec/2024:23:51:07 +0900] "GET /favicon.ico HTTP/1.1" 404 490 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
192.168.12.4 - - [06/Dec/2024:23:53:49 +0900] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
192.168.12.4 - - [06/Dec/2024:23:53:49 +0900] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
192.168.12.4 - - [06/Dec/2024:23:53:49 +0900] "GET /favicon.ico HTTP/1.1" 404 490 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:133.0) Gecko/20100101 Firefox/133.0"
192.168.12.4 - - [06/Dec/2024:23:54:23 +0900] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
192.168.12.4 - - [06/Dec/2024:23:54:23 +0900] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
192.168.12.4 - - [06/Dec/2024:23:54:23 +0900] "GET /favicon.ico HTTP/1.1" 404 490 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36"
192.168.12.4 - - [06/Dec/2024:23:55:14 +0900] "-" 408 0 "-" "-"
192.168.12.4 - - [06/Dec/2024:23:56:56 +0900] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
192.168.12.4 - - [06/Dec/2024:23:56:56 +0900] "GET /icons/ubuntu-logo.png HTTP/1.1" 200 3607 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
192.168.12.4 - - [06/Dec/2024:23:56:56 +0900] "GET /favicon.ico HTTP/1.1" 404 490 "http://192.168.12.9/" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
192.168.12.4 - - [06/Dec/2024:23:57:04 +0900] "GET / HTTP/1.1" 200 3460 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/131.0.0.0 Safari/537.36 Edg/131.0.0.0"
192.168.12.4 - - [06/Dec/2024:23:57:55 +0900] "-" 408 0 "-" "-"
パッケージを読み込んで、read_log関数でファイルを読み込む。
> library(tidyverse)
> options(readr.show_progress = FALSE, readr.show_col_types = FALSE)
> tib <- read_log("access.log")
> dim(tib)
[1] 15 9
> tib[, 1:6] |> as.data.frame()
X1 X2 X3 X4 X5 X6
1 192.168.12.2 NA NA 06/Dec/2024:23:51:07 +0900 GET / HTTP/1.1 200
2 192.168.12.2 NA NA 06/Dec/2024:23:51:07 +0900 GET /icons/ubuntu-logo.png HTTP/1.1 200
3 192.168.12.2 NA NA 06/Dec/2024:23:51:07 +0900 GET /favicon.ico HTTP/1.1 404
4 192.168.12.4 NA NA 06/Dec/2024:23:53:49 +0900 GET / HTTP/1.1 200
5 192.168.12.4 NA NA 06/Dec/2024:23:53:49 +0900 GET /icons/ubuntu-logo.png HTTP/1.1 200
6 192.168.12.4 NA NA 06/Dec/2024:23:53:49 +0900 GET /favicon.ico HTTP/1.1 404
7 192.168.12.4 NA NA 06/Dec/2024:23:54:23 +0900 GET / HTTP/1.1 200
8 192.168.12.4 NA NA 06/Dec/2024:23:54:23 +0900 GET /icons/ubuntu-logo.png HTTP/1.1 200
9 192.168.12.4 NA NA 06/Dec/2024:23:54:23 +0900 GET /favicon.ico HTTP/1.1 404
10 192.168.12.4 NA NA 06/Dec/2024:23:55:14 +0900 <NA> 408
11 192.168.12.4 NA NA 06/Dec/2024:23:56:56 +0900 GET / HTTP/1.1 200
12 192.168.12.4 NA NA 06/Dec/2024:23:56:56 +0900 GET /icons/ubuntu-logo.png HTTP/1.1 200
13 192.168.12.4 NA NA 06/Dec/2024:23:56:56 +0900 GET /favicon.ico HTTP/1.1 404
14 192.168.12.4 NA NA 06/Dec/2024:23:57:04 +0900 GET / HTTP/1.1 200
15 192.168.12.4 NA NA 06/Dec/2024:23:57:55 +0900 <NA> 408
作成したtibbleは15行9列で、1~6列を表示させたところ、正しく読み込まれていることがわかる。