# Blosxom Plugin: kilog # Author: ogane ( mr9p@yahoo.co.jp ) # Version: 2004-12-16 # Blosxom Home/Docs/Licensing: http://www.raelity.org/blosxom # kilog plugin generates a simple access log. package kilog; # --- Configurable variables ----- # log's directory and file name ( full pathname ) $fn = ""; # $fn = "/path/to/log_file_name"; # log's extension (with dot) $ext = ""; # $ext = ".txt"; # keep logs for $nday days $nday = 3; # -------------------------------- sub start { $host = $ENV{'REMOTE_HOST'}; $addr = $ENV{'REMOTE_ADDR'}; if ($host eq "" || $host eq $addr) { $host = gethostbyaddr(pack("C4",split(/\./,$addr)),2) || $addr; } $ENV{'TZ'} = "JST-9"; $times = time; ($sec,$min,$hour,$mday,$mon,$year,$wday,$dmy,$dmy) = localtime($times); $year += 1900; $mon += 1; $time = sprintf("%04d\/%02d\/%02d %02d\:%02d", $year,$mon,$mday,$hour,$min); $referer = $ENV{'HTTP_REFERER'}; $agent = $ENV{'HTTP_USER_AGENT'}; #check $now = "$year$mon$mday"; $tfn = sprintf("%02d", 1); $tfn = $fn . $tfn . $ext; open(CHK, "$tfn"); @a = ; close(CHK); ($last,$dmy,$dmy,$dmy) = split(/<>/,@a[0]); $last =~ s/ .*$//g; $last =~ s/\///g; if ($now ne $last) { for ($i = 0; $i < $nday -1; $i++) { $old = sprintf("%02d", $nday - $i); $old = $fn . $old . $ext; $new = sprintf("%02d", $nday - $i - 1); $new = $fn . $new . $ext; unlink $old; open(CPY, "$new"); @b = ; close(CPY); open(FILE, ">>$old"); print FILE @b; close(FILE); } unlink $tfn; } open(FILE, ">>$tfn"); print FILE "$time<>$host<>$agent<>$referer\n"; close(FILE); return 1; } 1;