Position actuelle: Accueil> Derniers articles> Le fichier journal est trop grand? MySQLI :: Débogg Suggestions de gestion des ressources utilisées

Le fichier journal est trop grand? MySQLI :: Débogg Suggestions de gestion des ressources utilisées

M66 2025-06-02

Le débogage et l'exploitation forestière sont une partie très importante du développement d'applications PHP. En particulier dans le scénario de l'utilisation de bases de données, le débogage rationnel et l'enregistrement des requêtes SQL peuvent non seulement nous aider à localiser rapidement les problèmes, mais également gérer efficacement les informations de débogage et éviter les fichiers journaux excessifs. MySQLI :: Debug est un outil très utile qui peut nous aider à enregistrer des informations détaillées sur la base de données, mais sans contrôle, les journaux peuvent rapidement devenir énormes et même affecter les performances de l'application.

Dans cet article, nous discuterons de la façon d'utiliser MySqli :: Debug pour contrôler correctement les ressources de débogage et éviter de générer des fichiers journaux excessivement importants.

1. Introduction à mysqli :: débogage

MySQLI :: Debug est une méthode dans l'extension MySQLI qui peut être utilisée pour activer le mode de débogage et enregistrer les informations de débogage pour toutes les connexions de la base de données. Il vous permet de suivre toutes les requêtes envoyées à la base de données MySQL, d'obtenir l'état d'exécution de la requête et des informations d'erreur connexes, et même de capturer des problèmes pendant le processus de connexion de la base de données.

Comment utiliser:

 $mysqli = new mysqli("localhost", "username", "password", "database");

// Activer le mode de débogage
$mysqli->debug("d:t");

// mettre en œuvre SQL Requête
$result = $mysqli->query("SELECT * FROM users");

// Désactiver le mode de débogage
$mysqli->debug("t");

2. Comment gérer les ressources de débogage

Bien que MySQLI :: Debug fournit des informations de débogage très détaillées, nous ne pouvons pas toujours continuer le mode de débogage dans les environnements de développement et de production, car cela entraînera une gonflement des fichiers journaux, ce qui affectera les performances du système.

Utiliser le jugement de la condition pour contrôler l'interrupteur de débogage

Nous pouvons contrôler l'opportunité d'activer la fonction de débogage en fonction de différents environnements. Dans un environnement de développement, nous pouvons permettre le débogage, tandis que dans un environnement de production, nous devons désactiver le débogage pour éviter de générer des journaux trop importants.

 $mysqli = new mysqli("localhost", "username", "password", "database");

// Déterminez si l'environnement actuel est un environnement de développement
if ($_SERVER['APP_ENV'] === 'development') {
    $mysqli->debug("d:t"); // Activer le mode de débogage
} else {
    $mysqli->debug("t"); // Désactiver le mode de débogage
}

3. Gestion de la taille du journal

Pour éviter les fichiers journaux excessifs, nous pouvons combiner certaines stratégies pour limiter la taille du journal, telles que la coupe du journal par le temps ou la taille du fichier, ou le stockage des informations de journal dans la base de données.

Exemple: coupez les journaux par temps

Nous pouvons couper les journaux en fonction de l'heure de la génération de journaux, afin que la taille de chaque fichier journal n'augmente pas l'infini.

 $logFile = __DIR__ . '/logs/mysql_debug_' . date('Y-m-d') . '.log';

$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer le débogage et écrire des informations de débogage dans le fichier journal spécifié
$mysqli->debug("d:t:" . $logFile);

// mettre en œuvre SQL Requête
$result = $mysqli->query("SELECT * FROM users");

De cette façon, un nouveau fichier journal sera généré chaque jour et le nom du fichier contiendra la date actuelle pour éviter une taille de fichier journal excessive.

Exemple: coupez les journaux par taille de fichier

Si vous souhaitez couper par la taille du fichier journal, vous pouvez utiliser la fonction de fonctionnement du fichier pour détecter la taille du fichier et la couper. Voici un exemple simple:

 $logFile = __DIR__ . '/logs/mysql_debug.log';

// Vérifier la taille du fichier journal
if (filesize($logFile) > 10 * 1024 * 1024) { // Si la taille du fichier dépasse 10MB
    rename($logFile, __DIR__ . '/logs/mysql_debug_' . time() . '.log'); // Renommé Old Nisshi
}

$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer le débogage et écrire des informations de débogage pour enregistrer les fichiers
$mysqli->debug("d:t:" . $logFile);

// mettre en œuvre SQL Requête
$result = $mysqli->query("SELECT * FROM users");

4. Remplacement de l'URL: protéger les informations sensibles

Pendant le débogage, le fichier journal peut parfois contenir des URL ou d'autres informations sensibles pour les requêtes de base de données. Dans ce cas, nous pouvons remplacer la partie du nom de domaine via le code pour protéger les données sensibles contre la divulgation.

Par exemple, supposons que le journal contient une URL comme ceci:

 $logMessage = "Request to http://example.com/api/data at " . date('Y-m-d H:i:s');

Nous pouvons remplacer la partie du nom de domaine par m66.net comme suit:

 $logMessage = "Request to http://m66.net/api/data at " . date('Y-m-d H:i:s');

Exemple complet

 $logFile = __DIR__ . '/logs/mysql_debug.log';
$mysqli = new mysqli("localhost", "username", "password", "database");

// Activer le mode de débogage
$mysqli->debug("d:t:" . $logFile);

// mettre en œuvre SQL Requête
$query = "SELECT * FROM users WHERE email = 'user@example.com'";
$query = str_replace("example.com", "m66.net", $query); // remplacer URL

$result = $mysqli->query($query);

De cette façon, nous pouvons nous assurer que le nom de domaine URL sensible réel n'est pas exposé dans le journal.

5. Résumé

MySQLI :: Debug est un puissant outil de débogage, mais s'il n'est pas contrôlé, il peut entraîner des fichiers journaux excessifs pour affecter les performances du système. En permettant ou en désactivant raisonnable les fonctions de débogage dans le code, en coupant les journaux par le temps ou la taille du fichier et le traitement des informations sensibles dans le journal, nous pouvons gérer efficacement les ressources de débogage et la taille des fichiers journaux, garantissant ainsi le fonctionnement normal de l'application.