Aller au contenu

Configuration de la journalisation (LSlog)

Cette section décrit le tableau de configuration de la journalisation de l'application.

$GLOBALS['LSlog'] = array(
  'enable' => [booléen],
  'level' => '[niveau]',
  'log_errors_context' => [booléen],
  'log_errors_context_with_args' => [booléen],
  'log_errors_context_args_max_length' => [entier],
  'handlers' => array(
    '[handler 1]',
    array (
      'handler' => [handler 2],
      'enabled' => [booléen],
      'level' => '[niveau]',
      'loggers' => array('logger1', [...]),
      'excluded_loggers' => array('logger2', [...]),
      'format' => '[LSformat]',
      'cli_format' => '[LSformat]',
      'datetime_prefix' => [booléen],
      'datetime_format' => '[format date()]',
      // Autres paramètres propre à ce handler
      [...]
    ),
    [...]
  ),
  'loggers' => array (
    'logger1' => array (
      'level' => 'DEBUG',
    ),
    'logger2' => array (
      'enabled' => false,
    ),
    [...]
  );
);
...
  • enable

    Booléen permatant d'activer ou désactiver complètement la journalisation. Par défaut : False

  • level

    Ce paramètre défini le niveau minimum de la journalisation : tous les messages des niveaux inférieurs ne seront pas inclus dans le journal de l'application. Les niveaux de journalisation gérés par l'application sont (dans l'ordre du plus petit au plus grand) :

    • TRACE
    • DEBUG
    • INFO
    • WARNING
    • ERROR
    • FATAL
  • log_errors_context

    Booléen permatant de définir si le contexte (=backtrace) doit être inclus lors de la journalisation d'une erreurs.

  • log_errors_context_with_args

    Booléen permatant de définir si les arguments des méthodes/fonctions appelées doivent être inclus lors de la journalisation du contexte des erreurs. Note : ce paramètre n'as aucun effet si le paramètre log_errors_context n'est pas activé.

  • log_errors_context_args_max_length

    Ce paramètre permet de définir à partir de quelle longueur les arguments des méthodes/fonctions appelées et journalisés seront tronqués (par défaut : 1000). Note : pour désactiver le troncage, mettre ce paramètre à zéro.

  • handlers

    Tableau permettant de configurer les handlers de la journalisation. Chaque handler gère les messages journalisés d'une manière qui lui est propre.

    Plusieurs handlers peuvent être configurés en même temps (y compris plusieurs handlers du même type).

    Ce tableau peut contenir simplement le nom du type de handler à utiliser ou bien des tableaux configurant un à un chacun des handlers. Dans ce second cas, la structure de la configuration d'un handler est la suivante :

    array(
      'handler' => [type],
      'level' => '[niveau]',
      'loggers' => array('logger1', [...]),
      'excluded_loggers' => array('logger2', [...]),
      'format' => '[LSformat]',
      'cli_format' => '[LSformat]',
      'datetime_prefix' => [booléen],
      'datetime_format' => '[format date()]',
      // Autres paramètres propre à ce handler
      [...]
    )
    ...
    
    • handler

      Type du handler (voir ci-dessous).

    • level

      Ce paramètre défini le niveau minimum de la journalisation spécifique à cet handler. Si ce paramètre est omis, le niveau global sera utilisé. Les valeurs possibles de ce paramètre sont les mêmes que pour le paramètre $GLOBALS['LSlog']['level'].

    • enabled

      Booléen permettant d'activer ou désactiver cet handler (paramètre facultatif, par défaut : True).

    • loggers

      Liste exhautive des composants dont les messages doivent être traités par ce handler (paramètre facultatif, par défaut : tous les composants).

    • excluded_loggers

      Liste exhautive des composants dont les messages ne doivent pas être traités par ce handler (paramètre facultatif, par défaut : aucun composant).

    • format

      LSformat des messages de cet journalisé par ce handler. Ce format est composé à partir des informations décritent ci-dessous. Par défaut :

      %{requesturi} - %{remoteaddr} - %{ldapservername} - %{authuser} - %{logger} - %{level} - %{message}
      
      • level

        Le niveau du message.

      • message

        Le message.

      • logger

        Le composant ayant déchenché cette journalisation.

      • clibinpath

        Le nom du script ayant déclenché cette jounalisation (uniquement en cas d'exécution en ligne de commande).

      • requesturi

        L'URL de la page courante (uniquement dans un contexte Web).

      • remoteaddr

        L'adresse IP du client (uniquement dans un contexte Web).

      • ldapservername

        Le nom du serveur LDAP courant.

      • authuser

        Le DN de l'utilisateur connecté (uniquement dans un contexte Web).

    • cli_format

      LSformat des messages de cet journalisé par ce handler dans le cas d'une exécution en ligne de commande. Ce format est composé à partir des même informations que le paramètre format (voir ci-dessus). Par défaut :

      %{clibinpath} - %{logger} - %{level} - %{message}
      

    • datetime_format

      Booléen permettant de définir si le message doit être préfixé de la date et heure courante. La valeur par défaut dépends de l'handler (en règle général, toujours actif sauf lorsque le canal de journalisation l'ajoute déjà).

    • datetime_format

      Format de la date et heure lorsque celle-ci est ajoutée en préfixe du message (voir paramètre datetime_format). Le format correspond à celui attendu par la function date() de PHP. Consultez la documentation officielle pour plus de détails (Par défaut : Y/m/d H:i:s).

    Il existe plusieurs types d'handlers gérés par l'application :

    • file

      Journalisation dans un simple fichier texte. Le chemin du fichier peut être configuré via le paramètre path. Si ce paramètre est omis, le chemin du fichier par défaut est soit la valeur de la variable $GLOBALS['LSlog']['filename'] (pour la rétro-compatibilité avec les anciennes versions d'LdapSaisie) ou à défaut : tmp/LS.log.

    • syslog

      Journalisation via le service syslog. Il est possible de configurer une priorité systématique pour les messages journalisés. À défaut, la priorité sera déterminée automatiquement en fonction du niveau du message. Les valeurs possibles de ce paramètre sont : EMERG, ALERT, CRITICAL,ERROR, WARNING, NOTICE, INFO, DEBUG

    • system

      Journalisation via le gestionnaire d'erreurs PHP. Cet handler utilise la fonction PHP error_log. Pour plus d'informations sur comment configurer le gestionnaire d'erreurs PHP, consulter la documentation officielle.

    • email

      Journalisation via l'envoi d'un email : chaque message journalisé déclenchera l'envoi d'un email au destinataire configuré. L'adresse email du destinataire peut-être configurée via le paramètre recipient.

      Note

      Il est conseillé d'utiliser ce type d'handler avec un niveau minimum de journalisation important (FATAL recommandé) pour ne pas déclencher un nombre trop important d'envois d'emails.

  • loggers

    Tableau permettant de configurer la journalisation composant par composant. Chaque composant peut avoir son propre logger ce qui permet alors, par exemple, de configurer le niveau de log spécifiquement pour ce composant.

    Le nom des composant correspond en général au nom de la classe PHP correspondante, ou bien encore le nom d'une commande (lors d'une exécution en ligne de commande).

    Note

    Par défaut, le nom du composant ayant déclenché un message journalisé est affiché juste avant le niveau de log.

    • enabled

      Booléen permettant de désactiver complètement les logs du composant (par défaut: True).

    • level

      Niveau de log spécifique pour ce composant (par défaut: le niveau de log global).