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 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é