IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Python Discussion :

Le logger Python [Tutoriel]


Sujet :

Python

  1. #1
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut Le logger Python
    Bonjour à tous,

    Je vous propose une petite introduction au logger Python: http://deusyss.developpez.com/tutoriels/Python/Logger/

    Voir aussi les Cours et tutoriels pour apprendre la programmation Python


    N'hésiter pas à commenter

  2. #2
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 486
    Points : 13 696
    Points
    13 696
    Billets dans le blog
    1
    Par défaut
    Bonne initiative

    J'ai modifié le titre et j'ai rajouté la balise qui va bien. J'ai aussi déplacer dans le sous-forum "Contribuez". Je présume que ton article sera bientôt en actualité ?

    En lisant, je suis tombé sur une petite faute :
    Le résultat de cette structure est que nous pouvons gérer de manière très fine la redirection de chaque information logger.
    J'aurais écrit logguée.

    Je ne suis pas complètement convaincu par la séparation en fonction des niveaux dans différents fichiers :
    Le but est de compartimenter les messages afin d'en faciliter le traitement. Cette solution possède néanmoins un inconvénient de taille : si vous désirez mieux comprendre le déroulement des opérations ayant entraîné l'anomalie, vous êtes obligé de jouer avec plusieurs logs au lieu d'un seul.
    Tu le dis très justement : cela complique l'analyse du déroulement. A mon humble avis, il est plus efficace de faire un seul fichier de log complet. Ensuite, on écrit des scripts pour traiter ce log. Avec grep par exemple, il est très simple d'extraire les messages critiques dans leur propre fichier ou de filtrer les messages d'un niveau qui n'intéresse pas. Une idée plus intéressante dans une telle séparation est faire un fichier avec tous les logs et d'avoir un handler spécial pour les critiques mais plutôt que ce soit un FileHandler, ce serait un STMPHandler pour envoyer un mail à la personne qui est d'astreinte

    Par ailleurs, sans tester et juste en lisant, j'ai l'impression que ton code ne sépare pas exactement les logs par niveau : il fait un fichier pour les critiques et un fichiers pour tout sauf debug. Non ?

  3. #3
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Oui la demande est en cours.

    Effectivement, personellement, je prefere un seul fichier. Mais d'autres personnes prefere des logs séparés, donc c'était important de l'expliquer. Sinon pour les mails, c'est quelque chose que je ne désirais pas aborder dans cet article car je visais le tout public, et même si en Python ce n'est pas compliqué, ce n'est quand même pas à la portée du débutant.

    Sinon, si si, il y a bien un filtrage, avec creation de deux fichiers. Tout d'abord le logger filtre au niveau info, ensuite chaque filehandler filtre à son niveau, info et critique.

  4. #4
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 486
    Points : 13 696
    Points
    13 696
    Billets dans le blog
    1
    Par défaut
    Je comprends que tu ne souhaitais pas aborder dans ce cours le cas des envois de mails. Je raisonnais ici uniquement sur un plan "métier" et non un plan "contenu du cours".

    handler_info.setLevel(logging.INFO)
    Quand tu fais ça, le handler écrit dans le fichier tous les messages de niveaux INFO et plus ou juste ceux de niveau INFO ?

  5. #5
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    @Bktero
    Sur un plan metier effectivement, je te rejoint à 3000%. Passer un certains seuil, il faut un envoi automatique de mail afin de pouvoir intervenir au plus vite et limiter les degats, surtout si les chaines tournent de nuit ou le week end.

    Du côté de ta question, j'en voit un qui a pas bien lu a fond le tuto .

    La reponse est dans le II-B: "Comme nous pouvons le constater, lorsqu'on définit un niveau, correspondant en réalité à un seuil de sensibilité, nous loggons ce niveau ainsi que tous les niveaux supérieurs de criticité". Dans les faits, mais je ne suis jamais monté à ce niveau par manque de besoin, je pense qu'il est possible de définir un niveau bas (ce qu'on fait dans le tuto) et un niveau haut, car tel qu'est tourné la documentation officielle on a l'impression qu'il est sous entendu qu'on peut définir un seuil maximal. Peu etre pour un futur article

  6. #6
    Expert éminent Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 790
    Points : 7 286
    Points
    7 286
    Par défaut
    Ma formulation sera éventuellement incorrecte et incompréhensible car approximative.

    Est-il possible de descendre à un niveau bas dans le language, non pas pour journaliser mais pour répliquer/neutraliser avec l'envoi de courriels ?

    Bravo pour le tutoriel surtout.

  7. #7
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Salut,

    Evidemment tout dépend de ce que tu appelle bas niveau. J'aovue ne pas parfaitement comprendre ton exemple. Pourrais tu détailler s'il te plait?

  8. #8
    Expert éminent Avatar de marsupial
    Homme Profil pro
    Retraité
    Inscrit en
    Mars 2014
    Messages
    1 790
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Autre

    Informations professionnelles :
    Activité : Retraité

    Informations forums :
    Inscription : Mars 2014
    Messages : 1 790
    Points : 7 286
    Points
    7 286
    Par défaut
    Salut,

    Chaque matériel dispose d'une carte d'identité flashable. Y compris à l'intérieur d'un quelconque produit. BSD comme GRUB s'appuie dessus. Afin d'obtenir un paramétrage plus fin, est-il possible d'expulser les hors domaine autant en intra qu'en extra.

    L'objectif particulier reste de mettre à l'écart les écoutes.
    L'objectif généraliste réside en la réduction de la surface d'attaque par prévention.

    En espérant que mettre mon projet à jour de manière aussi précise restera bénéfique à tous.


  9. #9
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Alors du coup descendre aussi bas j'avoue ne pas pourvoir te répondre.

    J'aurais tendance à penser que Python peut le faire à travers d'autre outil mais pas directement. Après, il s'agit surtout de mon avis personnel, sans recherches effectuées.

  10. #10
    Membre confirmé

    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Points : 450
    Points
    450
    Billets dans le blog
    1
    Par défaut
    J'attendais ce type de tutoriel depuis plusieurs années. Je ne parle pas que pour Python, mais aussi sur Qt car un serveur de log à qui toutes les instances peuvent envoyer des traces est l'outil indispensable.Que ce soit en développement, ou en utilisation pour du Debug post mortem par exemple.Même si je passe plus de temps en C++, Python reste un langage de choix et du coup j'ai appris pas mal de choses au delà du simple logging que je faisait.Merci.

  11. #11
    Modérateur

    Avatar de Bktero
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juin 2009
    Messages
    4 486
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 37
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Juin 2009
    Messages : 4 486
    Points : 13 696
    Points
    13 696
    Billets dans le blog
    1
    Par défaut
    Je ne parle pas que pour Python
    A noter d'ailleurs les API de base de Java, dans java.util.logging, sont très proches et on retrouve les mêmes concepts (voire les mêmes noms de classes) qu'avec Python

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 461
    Points : 37 060
    Points
    37 060
    Par défaut
    Citation Envoyé par Bktero Voir le message
    A noter d'ailleurs les API de base de Java, dans java.util.logging, sont très proches et on retrouve les mêmes concepts (voire les mêmes noms de classes) qu'avec Python
    C'est du cut&paste.

    - W

  13. #13
    Membre confirmé

    Inscrit en
    Février 2007
    Messages
    202
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 202
    Points : 450
    Points
    450
    Billets dans le blog
    1
    Par défaut Une suite logique serait ....
    Une suite vraiment sympa serait un analyseur des logs générés pour faire de l'analyse post mortem :
    • * pouvoir afficher les logs générés (soit avec fichier unique, soit en concaténant les fichiers si nécessaire)* avoir la coloration syntaxique customisable* pouvoir filtrer les données d'un log : n'afficher que les message de niveau error, ou que warning, etc...

  14. #14
    Expert confirmé
    Avatar de doc malkovich
    Homme Profil pro
    Consultant en Business Intelligence
    Inscrit en
    Juillet 2008
    Messages
    1 884
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Nord (Nord Pas de Calais)

    Informations professionnelles :
    Activité : Consultant en Business Intelligence

    Informations forums :
    Inscription : Juillet 2008
    Messages : 1 884
    Points : 4 285
    Points
    4 285
    Billets dans le blog
    1
    Par défaut
    Merci pour le tuto, très intéressant

    Petite question, c'est pour Python 2 ou 3 ? ou les 2 ?

  15. #15
    Expert éminent

    Avatar de deusyss
    Homme Profil pro
    Expert Python
    Inscrit en
    Mars 2010
    Messages
    1 659
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Expert Python
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2010
    Messages : 1 659
    Points : 8 442
    Points
    8 442
    Par défaut
    Merci beaucoup pour tous ces retours. Le tuto à l'air de plaire et tant mieux.

    Alors pour repondre à la question, cela fonctionne aussi bien avec Python 2 que 3.

  16. #16
    Expert éminent sénior
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 461
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 461
    Points : 37 060
    Points
    37 060
    Par défaut
    Salut,

    Citation Envoyé par doc malkovich Voir le message
    Petite question, c'est pour Python 2 ou 3 ? ou les 2 ?
    Le module logging est dans les bibliothèques standards depuis la version 2.3 publiée en Juillet 2003.
    Ce qui fait presque 12 ans.

    - W

Discussions similaires

  1. CORBA & PYTHON
    Par stan91stan dans le forum CORBA
    Réponses: 5
    Dernier message: 10/06/2004, 13h32
  2. [interbase]Se logger après une première installation
    Par Ultra-FX dans le forum InterBase
    Réponses: 3
    Dernier message: 13/09/2002, 12h44

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo