forked from jelix/jelix-manuel-fr
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathdeboggage.gtw
163 lines (124 loc) · 5.93 KB
/
deboggage.gtw
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
~~LANG:EN@enman:debugging~~
===== jLog =====
jLog est une classe qui permet de tracer, ou plus précisément d'écrire des
messages ou le contenu de variable dans un fichier journal ou un autre système
de sortie : syslog, firebug etc. Cela peut être utile pour tracer certains
évènements, mais aussi pour aider au débogage.
jLog a des plugins pour ajouter des supports de log (appelé "loggeur"), et est
aussi utilisé pour stocker les erreurs. La classe @@C@jLog@@ possède deux
méthodes statiques :
* @@jLog::log($message, $logType)@@ pour écrire un message dans le fichier
journal
* @@jLog::dump($variable, $message, $logType)@@ pour écrire le contenu de la
variable dans le fichier journal (il s'agit en fait d'un @@var_export@@)
Le "loggeur" par défaut est le loggeur fichier. Les messages sont stockés dans
un fichier @@F@var/log/messages.log@@, ou @@F@var/log/errors.log@@ pour les
erreurs. @@$logType@@ indique le type de message. Et à chaque type sont assignés
un ou plusieurs loggeurs.
==== Configurer jLog ====
Pour spécifier les loggeurs à utiliser pour chaque type de message, vous devez
remplir la section @@[logger]@@ dans la configuration (pour rappel, dans le
fichier @@F@var/config/defaultconfig.ini.php@@ ). Par défaut :
<code ini>
[logger]
_all =
default=file
error= file
warning=file
notice=file
deprecated=
strict=
debug=
</code>
Les nom d'options sont les types de messages ($logType). Vous pouvez utiliser
n'importe quel nom, bien que certains noms soient déjà réservés :
* @@default@@ : loggeurs par défaut,
* @@error@@, @@warning@@, @@notice@@, @@deprecated@@, @@strict@@ : utilisé
par le gestionnaire d'erreur, pour les messages d'erreurs.
* @@sql@@, pour jDb (dans l'édition dev), pour logguer les requêtes SQL
* @@soap@@, pour jSoapClient, pour logger les messages soap.
Et les valeurs des options sont des listes de loggeurs (les noms correspondant
aux noms des plugins). Vous indiquerez :
* @@file@@ pour stocker dans les fichiers. Les noms des fichiers sont
indiqués dans une section @@[filelogger]@@.
* @@syslog@@ pour envoyer les messages au syslog
* @@firebug@@, pour afficher les messages dans l'extension Firebug pour
Firefox (ou tout autre navigateur supportant l'objet javascript
@@console@@)
* @@mail@@, pour envoyer les messages dans une boite mail
* @@memory@@, pour stocker les message en mémoire temporairement. Utilisé par
d'autres composants comme la debug barre.
* et tout autre plugin que vous avez ajouté ou créé.
==== Loggeur fichier ====
Quand vous utilisez ce loggeur, vous devez indiquer dans quel fichier vont les
messages. Les fichiers sont indiqués dans la section @@[filelogger]@@. Les noms
des options sont les types de messages, et les valeurs les noms des fichiers
(dans @@F@var/log/@@).
Exemple (valeurs par défaut) :
<code ini>
[fileLogger]
default=messages.log
error=errors.log
warning=errors.log
notice=errors.log
deprecated=errors.log
strict=errors.log
debug=debug.log
</code>
Il arrive que plusieurs développeurs travaillent sur un même serveur : il y
aurait alors dans un même fichier toutes les traces que chacun aurait mises. Il
est possible d'avoir autant de fichiers journaux que de développeurs, à
condition qu'ils aient une adresse IP différente. Il suffit d'inclure "%ip%"
dans le nom du fichier :
<code ini>
[fileLogger]
default = "messages_%ip%.log"
news = "%ip%_modulenews.log"
</code>
Ainsi, si un développeur a son poste de travail en 192.168.1.2, alors il y aura
des fichiers @@F@var/log/192.168.1.2_modulenews.log@@ et
@@F@var/log/messages_192.168.1.2.log@@.
Vous pouvez aussi construire les noms des fichiers de log avec la date et
l'heure : pour cela, incluez un ou plusieurs des "tags" suivant dans le nom :
@@%Y%@@ (année), @@%m%@@ (mois), @@%d%@@ (jour), @@%H%@@ (heure).
==== Loggeur mail ====
Pour le configurer, vous devez indiquer l'adresse email et les entêtes email:
<code ini>
[mailLogger]
email = root@localhost
emailHeaders = "Content-Type: text/plain; charset=UTF-8\nFrom: webmaster@yoursite.com\nX-Mailer: Jelix\nX-Priority: 1 (Highest)\n"
</code>
Evitez d'utiliser ce loggeur, sauf si vous savez votre application très stable,
où les erreurs ou messages sont rares. Sinon votre boîte risque d'être
littéralement spammée (et votre hébergeur pas très content).
Il est plutôt recommandé, si c'est possible, de configurer le serveur de manière
à envoyer par mail, une fois par jour par exemple, le contenu du fichier
errors.log. Cela peut se faire sous linux en créant un script bach qui sera
programmé dans le cron.
===== La debug barre =====
Jelix peut afficher une "debugbar", qui permet d'inspecter non seulement les
détails des erreurs, mais aussi d'autres informations : données en sessions,
requêtes sql etc. Chacune de ces informations étant fournie par des plugins.
Vous pouvez donc créer vos propres plugins pour enrichir cette debugbar.
Sachant que la debugbar est elle-même un plugin de jResponseHtml, voici comment
faire pour l'activer :
* vous devez ajouter "debugbar" dans la liste des plugins de jResponseHtml
* éventuellement indiquer la liste des plugins que vous voulez activer pour
la debugbar (par défaut: "sqllog, sessiondata, defaultlog"
Voici un exemple typique (dans le fichier de configuration
@@F@var/config/defaultconfig.ini.php@@) :
<code ini>
[jResponseHtml]
plugins = debugbar
[debugbar]
plugins = sqllog,sessiondata,defaultlog
defaultPosition = right
errors_openon=error
</code>
@@defaultPosition@@ indique si vous voulez afficher la debugbar à droite
(@@right@@) ou à gauche (@@left@@) sur la page web. Vous pouvez aussi changer la
position dynamiquement.
@@errors_openon@@ indique pour quel niveau(x) d'erreur la liste des messages s'ouvre
à l'ouverture de la page. Les valeurs sont à choisir (séparateur virgule) parmi
@@error@@, @@warning@@, @@notice@@, @@deprecated@@ et @@strict@@ ou plus prosaïquement
@@*@@ comme raccourci de l'ensemble de ces valeurs.