Authors: | Luca Delucchi |
---|---|
Last Updated: | $Date: 2013-03-27 00:06:12 +0100 (Wed, 27 Mar 2013) $ |
Il ya différentes moyens de débugger vos services, les solutions les plus utilisées sont via le web ou via la ligne de commande.
En utilisant la requête Web, vous pouvez voir n’importe quel problème dans le fichier de log d’Apache.
Sur les systèmes Unix, le fichier de log est habituellement dans /var/log/apache2 et le fichier correspondant est error_log. Une manière simple de lire le fichier est d’utiliser la commande tail, cela permet de voir la mise à jour du fichier pour chaque requête
tail -f /var/log/apache2/error_log
Si le log n’est pas assez clair, vous pouvez ajouter un peu plus d’informations de débuggage à votre code. Vous devez écrire dans la sortie d’erreur standard.
En utilisant Python, vous pouvez par exemple faire ceci
import sys
#add this line when you want see an own message
sys.stderr.write("My message")
Vous pouvez utiliser alert pour renvoyer un chaîne dans la sortie d’erreur standard:
// add this line when you want see an own message
alert('My message')
// you can debug value of inputs, outputs or conf
alert(inputs["S"]["value"])
Note
Si vous essayez de passer un objet, il ne retournera que [object Object]
Il est aussi possible d’utiliser le zoo_loader.cgi du Kernel ZOO depuis la ligne de commande. C’est très utile pour debugger de manière approfondie votre service:
# in order to use it you have to copy test_service.py and HelloPy.zcfg from
# the example services
./zoo_loader.cgi "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"
En travaillant de cette façon, vous pouvez utiliser le système de débuggage standard du langage de programmation réelle utilisé pour développer votre service.
Depuis la ligne de commande, vous pouvez utiliser l’outil en ligne de commande GDB pour debugger zoo_loader.cgi, vous devez lancer:
# launch zoo_loader.cgi from gdb
gdb zoo_loader.cgi
# now run your request
run "service=wps&version=1.0.0&request=execute&identifier=HelloPy&datainputs=a=your name&responsedocument=Result"
A ce moment, vous pouvez demander de l’aide sur la liste de diffusion ZOO en copiant le résultat de la commande.
Pour Python, vous pouvez utiliser pdb, plus d’informations sur http://docs.python.org/2/library/pdb.html
import pdb
# add this line when you want investigate your code in more detail
pdb.set_trace()
Vous pouvez utiliser alert aussi pour faire un retour dans la console, plus d’informations dans la section web Javascript