diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php index 47a7d65bc6eb63618b99c88068e73787343e8398..88f84609548715a8aa18bafb4c6b11c6ab873c32 100644 --- a/ecrire/inc/utils.php +++ b/ecrire/inc/utils.php @@ -225,8 +225,10 @@ function pipeline($action,$val) { // http://doc.spip.org/@spip_log function spip_log($message, $logname='spip') { static $compteur; - if ($compteur++ > 100) return; + global $nombre_de_logs, $taille_des_logs; + if ($compteur++ > 100 || !$nombre_de_logs || !$taille_des_logs) return; + $rotate = 0; $pid = '(pid '.@getmypid().')'; // accepter spip_log( Array ) @@ -237,20 +239,22 @@ function spip_log($message, $logname='spip') { $logfile = _DIR_TMP . $logname . '.log'; if (@is_readable($logfile) - AND (!$s = @filesize($logfile) OR $s > 50*1024)) { - $rotate = true; + AND (!$s = @filesize($logfile) OR $s > $taille_des_logs * 1024)) { + $rotate = $nombre_de_logs; $message .= "[-- rotate --]\n"; - } else $rotate = ''; + } + $f = @fopen($logfile, "ab"); if ($f) { fputs($f, htmlspecialchars($message)); fclose($f); } - if ($rotate) { - @unlink($logfile.'.3'); - @rename($logfile.'.2',$logfile.'.3'); - @rename($logfile.'.1',$logfile.'.2'); - @rename($logfile,$logfile.'.1'); + + if ($rotate-- > 0) { + @unlink($logfile . '.' . $rotate); + while ($rotate--) { + @rename($logfile . ($rotate ? '.' . $rotate : ''), $logfile . '.' . ($rotate + 1)); + } } // recopier les spip_log mysql (ce sont uniquement des erreurs) diff --git a/ecrire/inc_version.php b/ecrire/inc_version.php index b9bb58c380e2de2eda80a9d45c5678cb894ecdda..3587a52ddcc96190523008688b1d4642fa37b110 100644 --- a/ecrire/inc_version.php +++ b/ecrire/inc_version.php @@ -85,6 +85,10 @@ OR (@file_exists($f = _DIR_RACINE . _NOM_PERMANENTS_INACCESSIBLES . _NOM_CONFIG // et fin de fichier PHP ("< ?php" et "? >", sans les espaces) // Ne pas les rendre indefinies. +# comment on logge, defaut 4 tmp/spip.log de 100k, 0 ou 0 suppriment le log +$nombre_de_logs = 4; +$taille_des_logs = 100; + // Prefixe des tables dans la base de donnees // (a modifier pour avoir plusieurs sites SPIP dans une seule base) $table_prefix = "spip";