Автоматически поддерживать ежедневные файлы журнала в PHP?

0

Я хочу создавать автоматически файлы журнала ежедневно в течение одного месяца, а после этого старые файлы будут отсоединены. Следующий мой код. Я поступаю правильно. Если да, то есть ли способ уменьшить размер файла на диске.

 $KeepDays = 30;  # how many days of log files we'll keep on hand
    $logname  = date("Ymd") . '.status.log';
    $OldFile  = date('Ymd',mktime(0,0,0,date("m"),(date("d") - ($KeepDays + 1)),date("Y"))) . '.status.log';
    if (file_exists($OldFile)) { unlink($OldFile); } # erase oldest log file 

    if (file_exists('logs/'.$logname)) {
        $fp=fopen('logs/'.$logname,'a');
    }else{
        $fp=fopen('logs/'.$logname,'w');
    }
    $chunk = "Var1_".$var1.'_'.$Var2.' var3_'.$var3.' var_'.$var.' var_'.$var4 ;
    fwrite($fp,$chunk. PHP_EOL);
    fclose($fp);

Заранее спасибо.

  • 1
    Этот квест должен быть задан в Code Review ( codereview.stackexchange.com )
  • 0
    Просто используйте Monolog :)
Теги:

1 ответ

0
Лучший ответ

Не думайте, что это сработает. Вы в основном удаляете oldfile и не получаете его содержимое. Где все эти $ var1 и т.д. Определены? Есть ли какая-то петля?

$KeepDays = 30;  # how many days of log files we'll keep on hand
$logname  = date("Ymd") . '.status.log';
// Would give '20141118.status.log ' for example

$OldFile  = date('Ymd',mktime(0,0,0,date("m"),(date("d") - ($KeepDays + 1)),date("Y"))) . '.status.log';
// Would give '20141018.status.log' for example

if (file_exists($OldFile)) { unlink($OldFile); } # erase oldest log file 
// Remove old file, but you remove it and can't get it contents anymore. So you delete it wihtout copying its contents anywhere

if (file_exists('logs/'.$logname)) {
    $fp=fopen('logs/'.$logname,'a');
}else{
    $fp=fopen('logs/'.$logname,'w');
}
$chunk = "Var1_".$var1.'_'.$Var2.' var3_'.$var3.' var_'.$var.' var_'.$var4 ;
// Where are all those $var* defined? What you put here?


fwrite($fp,$chunk. PHP_EOL);
fclose($fp);

Кроме того, вы можете zip или gzip содержимое файла.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню