Debugger

Le
MyDomDom
Bonjour,

Je voudrais apprendre à utiliser un debugger. J'en ai marre de faire
des print ;-)

Lequel me conseillez-vous (facile à utiliser) ?
Y-a-t-il un bon tuto en français (sinon en anglais) ?

Merci d'avance
Dominique
Vidéos High-Tech et Jeu Vidéo
Téléchargements
Vos réponses
Gagnez chaque mois un abonnement Premium avec GNT : Inscrivez-vous !
Trier par : date / pertinence
Christophe
Le #16386471
a écrit :
Bonjour,

Je voudrais apprendre à utiliser un debugger. J'en ai marre de faire
des print... ;-)

Lequel me conseillez-vous (facile à utiliser) ?
Y-a-t-il un bon tuto en français (sinon en anglais) ?

Merci d'avance
Dominique



Try PyDev with Eclipse. Ok, it's not lightweight but the debugger is good.
William Dode
Le #16397301
On 22-07-2008, wrote:
Bonjour,

Je voudrais apprendre à utiliser un debugger. J'en ai marre de faire
des print... ;-)



Ca dépend un peu du programme... Déjà au lieu des prints tu peux
utiliser le module logging

Pour les applis web par ex, j'utilise evalexception (de paste) qui
permet de lancer un interpréteur sur la page web qui plante.

--
William Dodé - http://flibuste.net
Informaticien indépendant
MyDomDom
Le #16398801
Bonjour et merci des réponses.

Pour les applis, c'est du gui wxpython essentiellement.
Je suis en train de découvrir pdb.

Merci
Dominique
utopia
Le #16422791
a écrit :
Bonjour,
J'en ai marre de faire des print... ;-)



-------------------------------------
source :
Comment ca marche . fr
http://www.commentcamarche.net/forum/affich-1245586-python-module-logging
------------------------------------
Quand vous avez une appli avec beaucoup de classes ou de threads, il
est parfois difficile de voir ce qui se passe.
Avec les threads, ça peut même tourner au cauchemard.

Le module logging permet d'avoir une hiérarchie de logs dans votre
application.

exemple:
monappli
monappli.database
monappli.database.updateUsers
monappli.mail
etc.

Ces logs sont accessible de n'importe où dans l'application.
Chacune de vos classes/threads peut loguer dans un de ces logs
(très simple:
log = logger.getLogger('monappli.database') et puis
log.info('coucou'), ou log.error('oups !')).

Il y a plusieurs niveaux de criticité pour chaque message (debug,
info, warning,error, exception, critical...)
Le module loggin enregistre tous ces messages.

Ensuite on peut se 'brancher' sur n'importe lequel de ces logs pour
écouter les messages.

Par exemple, on peut se brancher sur 'monappli' pour voir les logs
générés dans toute l'application.
Ou bien se brancher uniquement sur 'monappli.database' pour ne voir
que ce qui concerne la base de données.

On peut choisir le niveau de vue: ne voir que les criticals, les
warning ou jusqu'au détail (debug).
Et ça peut se changer dynamiquement: ça veut dire qu'on peut très bie n
aller sur une application en production et passer en mode 'debug' pour
voir ce qui se passe sans interrompre l'application.
(Ils ont même prévu un socket serveur pour demander en live à l'appli
de changer sa configuration de log !)

C'est absolument génial pour débuguer un problème en prod !

Le plus fort, c'est que quand on se branche sur un log, on peut
pluguer un handler qui va automatiquement faire des actions:
- afficher à l'écran
- écrire dans un fichier
- écrire dans un fichier (avec log rotatif automatique)
- envoyer à un syslog
- écrire dans l'eventlog de Windows
- envoyer sur un socket
- envoyer une trame UDP
- envoyer une requête HTTP
- envoyer un mail (SMTP)

En plus des niveaux de criticité, ils ont même prévu un système de
filtres pour ne récupérer que les évènements qui vous intéressent .
On peut même définir ses propres niveaux de criticité.

Et évidemment ce module est totalement thread-safe.
NicolasP
Le #16423411
utopia a écrit :
a écrit :
Bonjour,
J'en ai marre de faire des print... ;-)



-------------------------------------
source :
Comment ca marche . fr
http://www.commentcamarche.net/forum/affich-1245586-python-module-logging
------------------------------------
Quand vous avez une appli avec beaucoup de classes ou de threads, il
est parfois difficile de voir ce qui se passe.
Avec les threads, ça peut même tourner au cauchemard.

Le module logging permet d'avoir une hiérarchie de logs dans votre
application.

exemple:
monappli
monappli.database
monappli.database.updateUsers
monappli.mail
etc.

Ces logs sont accessible de n'importe où dans l'application.
Chacune de vos classes/threads peut loguer dans un de ces logs
(très simple:
log = logger.getLogger('monappli.database') et puis
log.info('coucou'), ou log.error('oups !')).

Il y a plusieurs niveaux de criticité pour chaque message (debug,
info, warning,error, exception, critical...)
Le module loggin enregistre tous ces messages.

Ensuite on peut se 'brancher' sur n'importe lequel de ces logs pour
écouter les messages.

Par exemple, on peut se brancher sur 'monappli' pour voir les logs
générés dans toute l'application.
Ou bien se brancher uniquement sur 'monappli.database' pour ne voir
que ce qui concerne la base de données.

On peut choisir le niveau de vue: ne voir que les criticals, les
warning ou jusqu'au détail (debug).
Et ça peut se changer dynamiquement: ça veut dire qu'on peut très bien
aller sur une application en production et passer en mode 'debug' pour
voir ce qui se passe sans interrompre l'application.
(Ils ont même prévu un socket serveur pour demander en live à l'appli
de changer sa configuration de log !)

C'est absolument génial pour débuguer un problème en prod !

Le plus fort, c'est que quand on se branche sur un log, on peut
pluguer un handler qui va automatiquement faire des actions:
- afficher à l'écran
- écrire dans un fichier
- écrire dans un fichier (avec log rotatif automatique)
- envoyer à un syslog
- écrire dans l'eventlog de Windows
- envoyer sur un socket
- envoyer une trame UDP
- envoyer une requête HTTP
- envoyer un mail (SMTP)

En plus des niveaux de criticité, ils ont même prévu un système de
filtres pour ne récupérer que les évènements qui vous intéressent.
On peut même définir ses propres niveaux de criticité.

Et évidemment ce module est totalement thread-safe.



Et comment on fait pour se "brancher" ?
Publicité
Poster une réponse
Anonyme