apache/nginxのアクセスログをtsv形式に変換する

カテゴリ: PHP

apacheやnginxなど、webサーバのアクセスログ(access.log)をtsv形式に変更するphpスクリプトです。

スクリプト

<?php

$lines = file_get_contents('php://stdin');
foreach (explode("\n", $lines) as $line) {
    $regex = '/^(\S+) (\S+) (\S+) \[([^:]+):(\d+:\d+:\d+) ([^\]]+)\] \"(\S+) (.*?) (\S+)\" (\S+) (\S+) "([^"]*)" "([^"]*)"/';
    preg_match($regex ,$line, $matches);

    echo implode("\t", $matches) . PHP_EOL;
}

実行方法

$ cat access.log | php parse-apachelog.php > access_log.tsv
こちらもおススメ
カテゴリ: PHP

コメントを残す

メールアドレスが公開されることはありません。