Maison > Article > développement back-end > Comment implémenter une journalisation fiable dans le multitraitement Python ?
Lors de l'utilisation du module multitraitement de Python 2.6 pour la génération de processus, un enregistreur au niveau du module est généralement attribué à chaque processus pour empêcher les données corruption dans le descripteur de fichier partagé sys.stderr. Cependant, s'assurer que tous les modules dépendants utilisent également cette approche de journalisation prenant en charge le multitraitement peut s'avérer fastidieux à la fois à l'intérieur et à l'extérieur du cadre.
Une solution alternative a été proposée pour résoudre ce problème :
Un gestionnaire de journaux personnalisé a été créé pour rediriger tous les appels de journalisation vers le processus parent à l'aide d'un canal. Spécialement conçue pour RotatingFileHandler, cette approche rassemble efficacement les journaux de plusieurs processus enfants et les consolide dans le processus parent.
La mise en œuvre implique :
<code class="python">from logging.handlers import RotatingFileHandler import multiprocessing, threading, logging, sys, traceback class MultiProcessingLog(logging.Handler): # ... Implementation as per above ...</code>
Ce gestionnaire de journaux personnalisé exploite une file d'attente pour la concurrence. et la récupération des erreurs, garantissant une journalisation fiable dans tous les processus.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!