bonjour
j'ai un fichier main.py et un fichier helpers.py avec des fonctions
je veux deux loggers pour chacun des fichiers
j'ai un dossier log dans lequel je store les logs.
le logger de main ecrit dans le fichier __main__.log
le logger de helpers ecrit dans __utils.helpers__.log (la cible c'est que le logger puisse ecrire dans __main__.log et __utils.helpers__.log selon divers conditions mais on verra ca plus tard)
le début du script main vient nettoyer mes dossier et créer des dossiers vide (genre les dossier temp, resultat, mais aussi le dossier log)
et c'est là qu'est mon probleme car ca perturbe le logger dans helpers.
j'epxlique:
j'ai le main avec ce code:
j'ai le helpers ave ce code:
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
35
36 import logging import shutil import os from utils.helpers import affiche # configure mon dossier if 'temp' in os.listdir("app"): shutil.rmtree("app/temp") os.mkdir("app/temp") else: os.mkdir("app/temp") if "log" in os.listdir("app"): shutil.rmtree("app/log") os.mkdir("app/log") else: os.mkdir("app/log") # creation du logger dans le main logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s--%(name)s--%(levelname)s--%(message)s") file_handler = logging.FileHandler(f"app/log/{logger.name}.log", mode="w") file_handler.setFormatter(formatter) logger.addHandler(file_handler) # démarrage logger.info("début") affiche() logger.info("fin")
je sais, j'ia du code redondant, mais c'est pour comprendre, je verrai ca apres
Quand je lance le code, j'ai les logs du main mais pas du helpers
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 import logging print("import module") log_folder_path = f"app/log" # creation du logger dans le module perso logger = logging.getLogger(__name__) logger.setLevel(logging.DEBUG) formatter = logging.Formatter("%(asctime)s--%(name)s--%(levelname)s--%(message)s") file_handler = logging.FileHandler(f"{log_folder_path}/{logger.name}.log", mode="w") file_handler.setFormatter(formatter) logger.addHandler(file_handler) def affiche() -> None: print("affiche") logger.info("ca fonctionne")
C'est parce que y a la suppression du dossier log par le main.
Si je suprrime pas le dossier tout est OK
Mais je veux supprimer, pour nettuter mon dossier avant demarrage des taches
comment faire?
Partager