Module logging : reinitialiser de force
Bonjour
J'ai un mega souci avec le module logging.
J'ai crée une classe et dans sa fonction __init__, j'y ai importé le module logging.
Mon programme demarre en appelant la fonction start() de cette classe.
MAIS
Lorsque je reinstancie ma classe et rappelle cette fonction start() (en lui passant de nouveaux parametres (pour faire tourner mon programme en boucle)), logging me pose des soucis.
Les variables de ma classe semblent etre reparties a 0, mais pas logging !!
Code:
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
| class MaClasse():
def __init__(self):
# Logging
import logging as logging
self.logging = logging
# Variables globales de portee classe
self.machin = "truc"
def start(parametre):
# Demarrage
self.debogage_initialise(parametre)
def debogage initialise(parametre)
self.logging.basicConfig(filename = parametre,\
level=self.logging.DEBUG,\
format='%(asctime)s : %(levelname)s : %(message)s',\
filemode = "w")
if __name__ == '__main__':
while i < 7
maclasse= Maclasse()
maclasse.start("nomFichierLog" + str(i))
maclasse = none
i += 1 |
Mon code cree bien le fichierlog0 fichierlog1 fichierlog2 fichierlog3 ...
Mais n'ecris rien dedans , et complete que le fichierlog0
De plus au deuxieme passage, dans le module logging\__init__ ,
il ne rentre pas dans la premiere condition de la fonction basicConfig
Code:
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
| def basicConfig(**kwargs):
"""
Do basic configuration for the logging system.
This function does nothing if the root logger already has handlers
configured. It is a convenience method intended for use by simple scripts
to do one-shot configuration of the logging package.
The default behaviour is to create a StreamHandler which writes to
sys.stderr, set a formatter using the BASIC_FORMAT format string, and
add the handler to the root logger.
A number of optional keyword arguments may be specified, which can alter
the default behaviour.
filename Specifies that a FileHandler be created, using the specified
filename, rather than a StreamHandler.
filemode Specifies the mode to open the file, if filename is specified
(if filemode is unspecified, it defaults to 'a').
format Use the specified format string for the handler.
datefmt Use the specified date/time format.
level Set the root logger level to the specified level.
stream Use the specified stream to initialize the StreamHandler. Note
that this argument is incompatible with 'filename' - if both
are present, 'stream' is ignored.
Note that you could specify a stream created using open(filename, mode)
rather than passing the filename and mode in. However, it should be
remembered that StreamHandler does not close its stream (since it may be
using sys.stdout or sys.stderr), whereas FileHandler closes its stream
when the handler is closed.
"""
if len(root.handlers) == 0: |
Pour moi, au deuxieme passage, root.handlers != 0