13.10 Classe Log

La classe Log permet d'envoyer des messages dans un journal d'événements (syslog ou fichier spécifique).

Chaque message comporte un niveau de log, et le paramètre applicatif CORE_LOGLEVEL (ou la méthode Log::setLogLevel()) permet de filtrer quels messages seront journalisés par rapport à ce niveau de log.

Table de correspondance entre le niveau de log et le code de niveau de log :

Niveau de log Code de niveau de log
Log::CALLSTACK C
Log::DEBUG D
Log::DEPRECATED O
Log::ERROR E
Log::FATAL F
Log::INFO I
Log::TRACE T
Log::WARNING W

La valeur par défaut du filtre de messages de la classe Log est spécifiée par le paramètre applicatif CORE_LOGLEVEL.

La valeur du filtre de messages peut ensuite être modifiée avec la méthode Log::setLogLevel().

La valeur par défaut du paramètre applicatif CORE_LOGLEVEL étant IWE, seuls les messages émis avec les niveaux de log Log::INFO, Log::WARNING et Log::ERROR seront journalisés.

Pour journaliser tous les messages, il faut positionner CORE_LOGLEVEL (ou faire un appel à Log::setLogLevel()) avec la valeur CDOEFITW (liste de tous les codes existants).

13.10.1 Constructeur

new Log ( string $logfile = "",
          string $application = "",
          string $function = "" )

13.10.1.1 Avertissements

Si plusieurs requêtes concurrentes utilisent le même fichier de journal logfile, alors l'ordre et l'intégrité d'écriture des messages ne sont pas garantis.

Pour garantir l'ordre et l'intégrité d'écriture des messages par des requêtes concurrentes, il faut alors utiliser le journal syslog en spécifiant une chaîne vide pour logfile.

13.10.1.2 Liste des paramètres

(string) logfile
Si logfile est vide, alors les messages sont envoyés au journal d'événement système par syslog. Sinon, les messages sont ajoutés au fichier référencé par logfile (chemin absolu ou relatif au répertoire courant).
(string) application
Le nom de l'application qui génère le message.
(string) function
Le nom de la fonction qui génère le message.

13.10.1.3 Exemples

function foo($id) {
    /* Log to syslog */
    $log = new Log('', 'Sample', 'Test');
    /* Log debug message if CORE_LOGLEVEL contains 'D' */
    $log->debug(sprintf("id = '%s'", $id));
}

Sortie :

Jul  3 14:15:92 localhost [D] Dynacase:Sample:Test: []  : id = '123'

13.10.1.4 Notes

Si le fichier logfile n'est pas spécifié, alors les messages vont dans le journal système syslog.

Les noms application et function sont utilisés pour composer un préfixe qui est placé devant chaque message émis par l'objet Log (voir exemple ci-dessus et dans la documentation des méthodes).

13.10.1.5 Voir aussi

Contenu du chapitre

×