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 !!
Mon code cree bien le fichierlog0 fichierlog1 fichierlog2 fichierlog3 ...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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
Pour moi, au deuxieme passage, root.handlers != 0
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Partager