$LOGPATH = './logs/';# ログ保存ディレクトリのパス
$EXPIRES = 3;# アクセスログ保存期間
# 日時の取得
$tm = time;
($sec, $min, $hour, $mday, $mon, $year) = localtime($tm);
$year += 1900;
++$mon;
# アクセス情報の整形
$ln = "$hour\t$min\t$ENV{'REMOTE_HOST'}\t"
. "$ENV{'HTTP_REFERER'}\t$ENV{'HTTP_USER_AGENT'}\n";
# ログファイルの書き込み
$logfile = sprintf(
"$LOGPATH%04d%02d%02d.dat", $year, $mon, $mday);
open(FILE, ">>$logfile")
or die("エラー:ログファイルが開けません");
eval{ flock(FILE, 2) };
seek(FILE, 0, 2);
print FILE $ln;
close(FILE);
# 古いログファイルの削除
$tm -= $EXPIRES * 60 * 60 * 24;
($sec, $min, $hour, $mday, $mon, $year) = localtime($tm);
$year += 1900;
++$mon;
$delfile = sprintf(
"$LOGPATH%04d%02d%02d.dat", $year, $mon, $mday);
if(-e $delfile) {
unlink $delfile;
}