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 : 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
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 : 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:
Pour moi, au deuxieme passage, root.handlers != 0