Santé et maintenance · Magento 2

Rotation des logs Magento 2 : éviter que les journaux remplissent le disque de votre boutique

Magento garde la trace de chaque erreur dans des fichiers qui ne sont jamais vidés. Des mois plus tard, ils peuvent peser plusieurs gigaoctets et bloquer la boutique. Voici comment vérifier la taille de vos logs en deux minutes, quoi demander à votre hébergeur et comment mettre en place la rotation des logs pour régler le problème une fois pour toutes.

Illustration : la cloche orange de Tocsin24 sonne au-dessus d'un serveur d'où débordent des feuilles de logs, à côté d'une boîte d'archives bleue.

En bref

  • Magento écrit ses erreurs dans des fichiers du dossier var/log et ne les vide jamais.
  • Un client FTP suffit pour vérifier leur taille. Au-delà de 500 Mo, la rotation n’est pas en place.
  • La rotation des logs archive ces fichiers chaque nuit et supprime les plus anciens. C’est un réglage du serveur, fait une fois.
  • Un fichier qui grossit très vite signale souvent une erreur qui se répète, à faire corriger.
Sommaire

Pourquoi les logs de Magento 2 grossissent sans fin

Un fichier de log est le carnet de bord de la boutique, sur Magento 2 comme sur Adobe Commerce. À chaque erreur, Magento y ajoute une ligne : un paiement refusé par la banque, une extension qui plante, un produit introuvable. Ces notes sont précieuses pour comprendre une panne.

Le problème, c’est que Magento n’arrache jamais les anciennes pages du carnet. Il écrit à la suite, jour après jour. Les deux fichiers qui grossissent le plus sont en général system.log et exception.log. Le second contient le détail complet de chaque erreur, et devient souvent le plus lourd.

Occupation du disque d’une boutique

Disque de 100 Go, logs qui grossissent de 2,5 Go par semaine

Illustration
Sans rotation des logs Plein en 18 semaines
Avec rotation des logs 56 % stable
Critique À surveiller 40 % 60 % 80 % 100 % sem. 0 sem. 4 sem. 8 sem. 12 sem. 16 sem. 20 Disque plein, sem. 18 Critique À surveiller 40 % 60 % 80 % 100 % sem. 0 sem. 5 sem. 10 sem. 15 sem. 20 Disque plein, sem. 18
Voir les valeurs
SemaineSans rotation des logsAvec rotation des logs
0 55 % 56 %
4 65 % 56 %
8 75 % 56 %
12 84 % 56 %
16 95 % 56 %
18 100 % (plein) 56 %
20 100 % (plein) 56 %
Sans rotation, le disque finit plein. Avec un disque plein, la boutique tombe en panne : la base de données ne peut plus enregistrer les commandes, et les sauvegardes échouent.
Pour les développeurs

Magento journalise avec Monolog. Son gestionnaire Magento\Framework\Logger\Handler\Base hérite du StreamHandler de Monolog : il écrit à la fin du fichier et n’a aucune rotation intégrée. Monolog recommande de confier la rotation à l’outil du système, logrotate.

Vérifier la taille des logs Magento dans var/log

Pas besoin de compétences techniques. Connectez-vous à votre boutique avec un client FTP ou SFTP (FileZilla, Cyberduck, WinSCP), ou avec le gestionnaire de fichiers de votre hébergeur. Les identifiants vous ont été transmis par votre hébergeur ou votre agence.

  1. Ouvrez le dossier de Magento, celui qui contient app, pub et var.
  2. Entrez dans var, puis dans log.
  3. Regardez la colonne Taille.
/var/www/boutique/var/log
NomTailleModifié
..
cron.log 212 Mo aujourd'hui 09:41
debug.log 3 Mo 12/03/2026
exception.log 1,8 Go aujourd'hui 09:40
system.log 640 Mo aujourd'hui 09:41
Exemple. Des fichiers de plusieurs centaines de mégaoctets, qui remontent à des mois : la rotation n’est pas en place.

Comment lire les tailles. Quelques mégaoctets, voire quelques dizaines, c’est normal. Au-delà de 500 Mo pour system.log ou exception.log, la rotation n’est presque certainement pas en place.

La rotation des logs, en clair

Chaque nuit, le serveur met de côté le fichier de la veille, le compresse et repart sur un fichier vide. Les archives trop anciennes, par exemple au-delà de deux semaines, sont supprimées. La taille totale reste stable et vous gardez de quoi enquêter sur une panne récente.

  1. Aujourd’hui system.log Magento écrit ici
  2. Hier system.log.1 Archive lisible
  3. Avant-hier system.log.2.gz Archive compressée, bien plus légère
  4. … system.log.14.gz Dernière archive conservée
  5. 15 jours system.log.15.gz Supprimée
Ce que vous verrez dans le dossier une fois la rotation en place : un fichier courant et une série d’archives numérotées.

Vous n’êtes pas technique : quoi demander à votre hébergeur

La rotation se règle sur le serveur. C’est le travail de votre hébergeur, de votre agence ou de la personne qui gère le serveur. Beaucoup d’hébergeurs spécialisés en Magento ont déjà un outil prévu : il suffit souvent de demander. Voici un message prêt à envoyer :

Message à votre hébergeur ou à votre agence

Bonjour,

Les fichiers de logs de notre boutique Magento (var/log/system.log et var/log/exception.log) grossissent sans limite : exception.log dépasse 1 Go.

Pouvez-vous mettre en place la rotation des logs Magento : archivage et compression chaque nuit, conservation de 14 jours ?

Pouvez-vous aussi regarder si une erreur se répète dans exception.log ?

Merci.

Vous gérez le serveur : configurer logrotate pour Magento sur Debian ou Ubuntu

Sur Debian et Ubuntu, l’outil logrotate fait partie de l’installation standard et tourne une fois par jour, peu après minuit. Il fait déjà tourner les logs du système et du serveur web, mais pas ceux de Magento. Il suffit de lui ajouter un fichier.

  1. Repérez le propriétaire du dossier des logs. La rotation se fera en son nom. Remplacez le chemin par celui de votre boutique :

    Terminal
    stat -c '%U %G' /var/www/boutique/var/log

    La réponse est par exemple www-data www-data.

  2. Créez le fichier /etc/logrotate.d/magento avec ce contenu, en adaptant le chemin et l’utilisateur :

    Contenu du fichier /etc/logrotate.d/magento
    1. /var/www/boutique/var/log/*.log {
    2. su www-data www-data
    3. daily
    4. rotate 14
    5. missingok
    6. notifempty
    7. compress
    8. delaycompress
    9. copytruncate
    10. }

    Ce que veut dire chaque ligne :

    • Ligne 1 Tous les fichiers .log du dossier des logs de Magento. Remplacez le chemin par celui de votre boutique.
    • su Agir au nom du propriétaire du dossier, la réponse de l’étape 1.
    • daily, rotate 14 Une rotation par jour, quatorze archives gardées : deux semaines d’historique.
    • missingok, notifempty Ne pas s’arrêter si un fichier manque, ne rien faire d’un fichier vide.
    • compress, delaycompress Compresser les archives, sauf celle de la veille, qui reste lisible telle quelle.
    • copytruncate Copier puis vider le fichier, sans le déplacer (voir l’encadré plus bas).
  3. Vérifiez la configuration sans rien toucher, puis lancez une première rotation :

    Terminal
    Simulation : affiche ce qui serait fait, sans rien modifier sudo logrotate -d -f /etc/logrotate.d/magento Première rotation, immédiate, puis contrôle sudo logrotate -f /etc/logrotate.d/magento ls -lh /var/www/boutique/var/log/

    La simulation doit afficher log needs rotating pour chaque fichier, puis copying et truncating. Après la vraie rotation, vous devez voir system.log revenu à zéro et une copie system.log.1. Sans cette première rotation à la main, logrotate se contenterait la première nuit de noter les fichiers, et ne les ferait tourner qu’à partir de la nuit suivante. Ensuite, il s’en occupe seul.

Un fichier qui grossit trop vite cache souvent une erreur

La rotation limite la place prise, mais elle ne dit pas pourquoi un fichier grossit. Une erreur répétée à chaque page vue peut remplir exception.log en quelques heures. Elle peut aussi ralentir la boutique ou gêner les achats. Si un fichier dépasse 500 Mo en une journée, faites ouvrir le fichier par votre développeur et chercher l’erreur qui revient.

Autre cause fréquente : le journal de débogage, qui remplit debug.log. Adobe l’active par défaut tant que la boutique n’est pas en mode production, et il est parfois allumé pendant un dépannage puis oublié. En production, il doit être coupé :

Terminal, depuis le dossier de Magento
bin/magento setup:config:set --enable-debug-logging=false bin/magento cache:flush

Vider ou supprimer les logs Magento à la main ?

Vider un gros log par FTP dépanne le jour même, sans risque pour la boutique : Magento continue d’écrire dans le fichier vidé. Le supprimer est moins efficace : tant qu’une tâche de fond garde le fichier ouvert, la place n’est rendue qu’à l’arrêt de cette tâche. Dans les deux cas, le problème revient. Seule la rotation règle la question durablement.

Tocsin24 vous prévient avant que le disque soit plein

Tocsin24 relève régulièrement l’espace libre sur le serveur de votre boutique et calcule à quel rythme il se remplit. Il lit aussi system.log et exception.log pour regrouper les erreurs de la boutique, et vous avertit dès qu’un de ces fichiers dépasse 500 Mo.

Espace disque

Espace libre sur le serveur du site.

Disque du serveur racine du site À surveiller
16 Go libres sur 100 Go 84 % utilisé
+2,5 Go par semaine · plein dans environ 6 semaines Relevé le 23/10 09:00

Erreurs de l'application

Logs Magento lus par le module Tocsin24, sans accès à créer chez votre hébergeur.

Récupérés
  • var/log/system.log 42 Mo écrit il y a 2 min
  • var/log/exception.log 1,8 Go écrit il y a 3 min Rotation absente
exception.log fait 1,8 Go et remonte au 4 mars 2025 : la rotation des logs n'est pas en place.

Nous en lisons seulement les lignes récentes : la détection n'est pas gênée. Pour éviter de saturer le disque de la boutique, demandez à votre hébergeur ou à votre agence d'activer la rotation des logs Magento (archivage et compression réguliers).

Écrans de l’application avec des valeurs d’exemple.

Questions fréquentes

Est-ce que la rotation des logs peut casser ma boutique ?

Non. Elle ne touche qu’aux fichiers de logs, que Magento recrée de lui-même. La boutique continue de fonctionner pendant la rotation.

Peut-on désactiver system.log ou exception.log ?

Magento ne propose pas de réglage pour cela, et ce serait se priver des seules traces d’une panne. Seul le journal de débogage se coupe. Pour les autres, on fait tourner les fichiers et on corrige les erreurs qui se répètent.

Combien de jours d’historique garder ?

Deux semaines suffisent en général pour comprendre un incident. Gardez davantage si un contrat l’impose, en surveillant la place prise par les archives.

Une extension Magento de rotation des logs fait-elle l’affaire ?

Il en existe, mais elles dépendent du cron de Magento : quand celui-ci est en panne, la rotation s’arrête aussi. logrotate tourne en dehors de Magento, et c’est l’outil que recommande Monolog, la bibliothèque de logs utilisée par Magento.

Mon disque se remplit alors que les logs sont petits. Que regarder ?

Le dossier var/report, qui garde un fichier par erreur affichée aux visiteurs, les sauvegardes laissées sur le serveur et les logs du serveur web. Votre hébergeur peut vous dire quel dossier prend le plus de place.

Portrait de Cédric Michel

Cédric Michel

Cédric développe des boutiques Magento depuis 18 ans et détient la certification Adobe Commerce Developer Expert. Il a créé Tocsin24 pour surveiller la sécurité et la santé des boutiques Magento 2 et des sites WordPress.

Badge Adobe Commerce Developer Expert Adobe Commerce Developer Expert
Vérifier la certification sur le site d’Adobe

Sources

  1. Adobe Commerce : activer ou désactiver la journalisation
  2. Manuel de logrotate (logrotate 8)
  3. Code source de Magento : Logger\Handler\Base
  4. Code source de Monolog : RotatingFileHandler (« Using logrotate to handle the rotation is strongly encouraged »)
  5. Debian : paquet logrotate