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
logfileest vide, alors les messages sont envoyés au journal d'événement système parsyslog. Sinon, les messages sont ajoutés au fichier référencé parlogfile(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
- 13.10.2 Log::debug()
- 13.10.3 Log::deprecated()
- 13.10.4 Log::error()
- 13.10.5 Log::fatal()
- 13.10.6 Log::info()
- 13.10.7 Log::warning()
- 13.10.8 Log::setLogLevel() nouveauté