Journaux techniques

Les erreurs PHP, exceptions et messages techniques de l'application, rangés jour par jour. Quand quelque chose ne fonctionne pas, c'est ici que l'on trouve la cause, sans accès au serveur.

/logs /api/logs logs.view

À quoi sert ce module

L'application écrit en permanence ses incidents dans des fichiers journaux sur le serveur : avertissements et erreurs PHP, erreurs fatales, exceptions non capturées (avec la trace d'appel et la requête en cause) et messages techniques des modules. Le module Journaux techniques rend ces fichiers lisibles depuis le navigateur : choix du fichier, filtre par niveau, recherche, téléchargement.

Il s'adresse aux administrateurs et au support technique. À ne pas confondre avec le module Audit : l'audit trace les actions des utilisateurs (qui a modifié quelle fiche), les journaux techniques tracent le fonctionnement de l'application (ce qui a planté, et où).

La capture ne dépend pas du module. L'écriture des journaux est assurée par le socle de l'ERP, que le module soit installé ou non : rien n'est perdu avant son activation. Le module se contente de lire les fichiers et de purger les anciens. Il se met en service depuis Paramètres → Modules (disponible → installé → activé), n'a aucune dépendance et ne crée aucune table. L'entrée apparaît dans la section Administration de la barre latérale.

Vue d'ensemble de l'écran

https://erp.entreprise.fr/logs
Journaux techniquesTélécharger

Un fichier par jour (web = navigateur, cli = tâches planifiées). Conservation : 30 jours.

Fichier : web-2026-10-17.log · 14 KoNiveau : TousRechercherFiltrer↻
Erreur · 2Avertissement · 5Notice · 1Applicatif · 14
DateNiveauMessage
2026-10-17 14:02:11Erreur[ERP] Exception non capturée (POST /api/clients) : PDOException … ▸
2026-10-17 11:40:03AvertissementPHP Warning: Undefined array key "email" in …
2026-10-17 09:15:00Applicatif[ERP] audit: rétention 365 j, 0 entrée(s) purgée(s).

Les 500 entrées les plus récentes du fichier choisi, de la plus récente à la plus ancienne. Les pastilles résument le nombre d'entrées par niveau ; une entrée sur plusieurs lignes (trace d'appel) se déplie d'un clic.

Les fichiers disponibles

Le sélecteur Fichier liste tous les journaux présents, le plus récemment modifié en premier, avec leur taille. À l'ouverture de la page, c'est ce fichier le plus récent qui s'affiche.

FichierContenu
web-AAAA-MM-JJ.logTout ce qui se produit pendant l'utilisation de l'ERP dans le navigateur, un fichier par jour.
cli-AAAA-MM-JJ.logTout ce qui se produit en ligne de commande : tâches planifiées, worker, migrations, un fichier par jour.
update.logLe déroulé des mises à jour (script update.sh) : étapes, erreurs, retours arrière.
backup.logLa sortie des sauvegardes planifiées (script backup.sh).

Les fichiers web et cli sont séparés parce que le serveur web et les tâches planifiées tournent souvent sous deux comptes système différents. Pour un incident vu à l'écran, regardez le fichier web du jour ; pour une facture récurrente non générée ou un e-mail non parti, le fichier cli.

Niveaux de gravité

Le niveau de chaque entrée est déduit de son message :

NiveauCe qu'il regroupe
FatalErreurs fatales et erreurs de syntaxe PHP : la page ou la tâche s'est arrêtée net.
ErreurExceptions non capturées, étapes en échec des scripts d'exploitation (marque ✗).
AvertissementAvertissements PHP et alertes des scripts (marque ⚠) : l'action a abouti mais quelque chose cloche.
NoticeNotices et dépréciations PHP : sans effet visible, à corriger à terme.
ApplicatifTous les autres messages, notamment ceux écrits par les modules (préfixe [ERP]).

Filtrer et rechercher

  1. Fichier — choisissez le jour (ou update.log, backup.log) ; la liste se recharge aussitôt.
  2. Niveau — Tous, Fatal, Erreur, Avertissement, Notice ou Applicatif ; appliqué immédiatement.
  3. Rechercher — un mot du message (sans tenir compte des majuscules), puis Filtrer.
  4. Le bouton Actualiser (flèche circulaire) relit le fichier pour voir les entrées arrivées depuis.

Les pastilles de comptage portent sur tout ce qui a été lu, avant filtres. Quand plus de 500 entrées correspondent, le bas de page l'indique (« 500 entrées les plus récentes sur … »).

Fichier volumineux : seule la fin est lue. Pour rester rapide, l'écran ne lit que les 2 derniers Mo d'un fichier, c'est-à-dire les entrées les plus récentes. Le bas de page le signale ; téléchargez alors le fichier pour en voir la totalité.

Télécharger un journal

Le bouton Télécharger récupère le fichier actuellement sélectionné, brut et complet, par exemple pour le transmettre au support. Chaque téléchargement est tracé dans le journal d'audit (action logs_download, avec le nom du fichier).

Un journal est un document sensible. Il contient des chemins de fichiers et des messages internes à l'application. C'est pourquoi aucune permission n'est donnée par défaut : seuls les administrateurs le consultent, ou un rôle dédié portant logs.view. Les traces d'appel n'incluent pas les arguments des fonctions (mots de passe, jetons), mais transmettez ces fichiers avec discernement.

Conservation (30 jours)

Chaque jour, une tâche log_retention supprime les fichiers datés (web-…, cli-…) de plus de 30 jours. Elle est créée par le planificateur (--schedule) et exécutée par le worker (--work).

La purge dépend du cron du serveur, et du module. Sans tâches planifiées en place, ou si le module n'est pas activé, aucun fichier n'est supprimé : l'administrateur système doit alors prévoir sa propre purge. update.log et backup.log ne sont jamais purgés par le module ; leur rotation reste à la charge du serveur.

Permissions

PermissionCe qu'elle ouvre
logs.viewConsulter les journaux techniques et les télécharger.

Le module est en lecture seule : il n'existe aucune permission d'écriture. Voir Rôles & permissions pour créer un rôle « support » portant logs.view.

Liens utiles