ログの記録方法について
現在、以下のように記録する最大数を超えた場合、
古いデータは1行削除、新規データは追加するようにしてるのですが
これを最大数を超えた場合にはfile.txtのすべてデータを
別に自動生成した過去ログファイルに記録し、
また過去ログファイルは最大5ファイルまで作成したいのです。
もしやり方が分かるようでしたらお手数ですがお教えいただけませんか?
$maxlog = $logmax;
#ログファイルの場所
$comment =~ s/\n//g;
($sec,$min,$hour,$day,$mon,$year,$wday,$dmy,$dmy) = localtime(time);
$year = 1900 + $year; $mon++;
if ($mon < 10) { $mon = "0$mon"; }
if ($day < 10) { $day = "0$day"; }
if ($hour < 10) { $hour = "0$hour"; }
if ($min < 10) { $min = "0$min"; }
$date = "$year\/$mon\/$day $hour\:$min";
# ログファイル読込
open LOG,$file;
@log = <LOG>;
close LOG;
# 先頭に新規ログデータを追加
unshift (@log,"$date<>$mailto<>$comment<>$agent<>$host<>$toki<>\n");
# 保存行数を超える分末尾を削除
while(@log > $maxlog){ pop @log; }
# 更新されたデータでログファイルに上書き
open LOG,">$file";
print LOG @log;
close LOG;