From 5d643608dfed5bed9a0fbe4410d91fb0c59b9bfb Mon Sep 17 00:00:00 2001
From: toggg <bertrand@toggg.com>
Date: Sat, 14 Apr 2007 19:55:55 +0000
Subject: [PATCH] Permettre de determiner le nombre et la taille des logs

---
 ecrire/inc/utils.php   | 22 +++++++++++++---------
 ecrire/inc_version.php |  4 ++++
 2 files changed, 17 insertions(+), 9 deletions(-)

diff --git a/ecrire/inc/utils.php b/ecrire/inc/utils.php
index 47a7d65bc6..88f8460954 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 b9bb58c380..3587a52ddc 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";
-- 
GitLab