Comments on: Écrire des logs en Python http://sametmax.com/ecrire-des-logs-en-python/ Du code, du cul Fri, 06 Sep 2019 09:34:15 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Sam http://sametmax.com/ecrire-des-logs-en-python/#comment-195806 Fri, 15 Jun 2018 10:28:56 +0000 http://sametmax.com/?p=5267#comment-195806 Bien vu !

]]>
By: ian0delond http://sametmax.com/ecrire-des-logs-en-python/#comment-195803 Fri, 15 Jun 2018 08:52:47 +0000 http://sametmax.com/?p=5267#comment-195803 Je crois qu’il y a un problème avec l’article.

Tu l’as écrasé en le remplaçant par la question de Poil. C’est dommage car l’article était bien rédigé.

]]>
By: Sam http://sametmax.com/ecrire-des-logs-en-python/#comment-195607 Wed, 06 Jun 2018 10:06:42 +0000 http://sametmax.com/?p=5267#comment-195607 Pose la question sur indexerror.net, le blog c’est pourri pour debugger.

]]>
By: Poil http://sametmax.com/ecrire-des-logs-en-python/#comment-195606 Wed, 06 Jun 2018 09:33:27 +0000 http://sametmax.com/?p=5267#comment-195606 Hello,

Un truc que je ne pige pas avec le logger Python

J’ai une appli Flask :

run.py

testlog/mymod/init.py


import logging

logger = logging.getLogger(__name__)

class MyMod(object):

def __init__(self):

logger.debug('kikoo')

from logging_tree import printout

printout()

V2 : (logger self.logger)

testlog/mymod/mymod.py


from logging_tree import printout

printout()

J’ai en V1:

Et en V2

Notez que je n’ai pas le Disabled ce qui semble faire que ça tombe en marche, je ne comprend pas pourquoi …

Note ma conf de logger

<

pre lang=”python>

[loggers]

keys = root

[handlers]

keys=syslog

[formatters]

keys=generic

[logger_root]

level=DEBUG

handlers=syslog

[handler_syslog]

class=logging.handlers.SysLogHandler

formatter=generic

args = (‘/dev/log’, handlers.SysLogHandler.LOG_USER)

[formatter_generic]

format=%(name)s: [%(module)s:%(pathname)s:%(filename)s:%(lineno)s] [%(levelname)s] %(message)s

class=logging.Formatter

</>

]]> By: Sam http://sametmax.com/ecrire-des-logs-en-python/#comment-188536 Fri, 28 Jul 2017 11:56:53 +0000 http://sametmax.com/?p=5267#comment-188536 Fixed.

]]>
By: Bob http://sametmax.com/ecrire-des-logs-en-python/#comment-188532 Fri, 28 Jul 2017 09:16:07 +0000 http://sametmax.com/?p=5267#comment-188532 Après plusieurs utilisation du snippet je me suis rendu compte d’un petite typo:

il faut remplacer steam_handler par stream_handler

My 2 cents

]]>
By: Sam http://sametmax.com/ecrire-des-logs-en-python/#comment-186772 Thu, 13 Apr 2017 13:23:21 +0000 http://sametmax.com/?p=5267#comment-186772 Ce n’est pas un problème de logging là, c’est un problème de base de programmation Python. Pour éviter de remplir les commentaires de l’article avec ce debuggage, ouvre un post sur indexerror.net.

]]>
By: MaxL http://sametmax.com/ecrire-des-logs-en-python/#comment-186758 Wed, 12 Apr 2017 10:09:00 +0000 http://sametmax.com/?p=5267#comment-186758 Merci de la réponse. J’ai essayé de rajouter cette ligne dans mon fichier de fonctions, puis dans une fonction, mais toujours la même chose, il n’arrive pas à accéder au logger défini plus haut …

Ma construction de fichiers est la suivante :

fichier_principal.py contenant :

import logging

logger = logging.getLogger()

puis la définition comme proposé plus haut dans ce post.

Et mon fichier de fonctions et classes :

functions.py :

import logging

def mafonction():

log = logging.getLogger(logger)

etc..

J’obtiens la même chose (NameError) que je définisse “log” avant ou dans ma définition de fonction.

Merci de ton aide !

]]>
By: Sam http://sametmax.com/ecrire-des-logs-en-python/#comment-186757 Wed, 12 Apr 2017 08:30:36 +0000 http://sametmax.com/?p=5267#comment-186757 Il faut faire dans tous les fichiers:

import logging

log = logging.getLogger(nom)

Pour obtenir une référence au logger portant ce nom.

]]>
By: MaxL http://sametmax.com/ecrire-des-logs-en-python/#comment-186756 Wed, 12 Apr 2017 07:45:36 +0000 http://sametmax.com/?p=5267#comment-186756 Bonjour,

Tout d’abord, merci pour tout ces articles, ma foi bien instructifs ! J’utilise régulièrement la routine de log proposée en début d’article, mais aujourd’hui je me heurte à un problème : je la définit dans mon script, et j’utilise l’objet logger dans des fonctions et classes qui sont définis dans un fichier annexe. Et là, c’est le drame : “name error:: global name logger is not defined”. Comme forcer logger à être global ? Il semble être local et ne pas passer dans les fonctions et classes, ce qui m’étonne un peu. Alors certes, il y a la possibilité de le passer en argument de mes fonctions et constructeurs, mais je ne trouve pas cela très propre…

J’aimerai pouvoir passer un warning quand certaines exceptions sont levées (je fais du traitement de données qui a un fort taux de corruption, d’où des erreurs régulièrement)

(j’ai aussi le même problème pour d’autres variables, mais c’est plus facilement contournable)

Merci de votre aide !

]]>