Maison >développement back-end >Tutoriel Python >Conseils de journalisation dans le développement Web Python
La journalisation est un aspect très important dans le développement Web Python. Grâce à la journalisation, nous pouvons mieux comprendre les problèmes et les événements de l'application afin de pouvoir les résoudre à temps et optimiser le code.
Voici plusieurs conseils de journalisation dans le développement Web Python :
1. Utilisez la bibliothèque de journalisation standard
La bibliothèque standard de Python contient un module de journalisation. En utilisant la journalisation, nous pouvons facilement enregistrer les événements qui se produisent dans notre application. Ce qui suit est un exemple de code simple pour utiliser la journalisation pour enregistrer les journaux :
import logging logging.basicConfig(filename='example.log', level=logging.INFO) logging.info('This is an information message.') logging.warning('This is a warning message.') logging.error('This is an error message.')
Dans cet exemple, nous configurons d'abord la journalisation via la fonction basicConfig et définissons le nom du fichier journal et le niveau de journalisation. Ensuite, nous enregistrons différents niveaux d'informations de journal via la journalisation. Ces informations de journal seront enregistrées dans le fichier example.log.
2. Spécifier le niveau de journalisation
la journalisation fournit plusieurs niveaux différents de méthodes de journalisation, notamment DEBUG, INFO, AVERTISSEMENT, ERREUR et CRITIQUE. En spécifiant différents niveaux de journalisation, nous pouvons contrôler la sortie des informations de journal de manière plus fine. Par exemple, nous pouvons définir le niveau de journalisation sur le niveau AVERTISSEMENT, alors seules les informations de journalisation des niveaux AVERTISSEMENT, ERREUR et CRITIQUE seront affichées. Voici un exemple de code :
import logging logging.basicConfig(filename='example.log', level=logging.WARNING) logging.debug('This is a debugging message.') logging.info('This is an information message.') logging.warning('This is a warning message.') logging.error('This is an error message.') logging.critical('This is a critical message.')
Dans cet exemple, nous définissons le niveau de journalisation sur le niveau AVERTISSEMENT. Par conséquent, seules les informations de journal de niveau AVERTISSEMENT, ERREUR et CRITIQUE seront sorties dans le fichier journal.
3. Spécifier le format du journal
À l'aide du module de journalisation, nous pouvons également personnaliser le format des messages du journal. Par défaut, les messages de journal sont générés dans un format fixe, comprenant l'horodatage, le niveau de journalisation et le message de journal lui-même. Cependant, nous pouvons personnaliser le format du journal en modifiant le format. Voici un exemple de code :
import logging logging.basicConfig(filename='example.log', level=logging.INFO, format='%(asctime)s:%(levelname)s:%(message)s') logging.info('This is an information message.') logging.warning('This is a warning message.') logging.error('This is an error message.')
Dans cet exemple, nous avons personnalisé le format du journal via le paramètre de format, y compris l'horodatage, le niveau de journalisation et le message du journal lui-même.
4. Rotation des journaux
Dans les applications Web, les fichiers journaux ont tendance à devenir très volumineux. S'il n'est pas nettoyé à temps, il occupera beaucoup d'espace disque et pourrait même provoquer un débordement du disque. Par conséquent, dans les applications Web, il est souvent nécessaire de configurer la rotation des journaux pour garantir que les fichiers journaux ne deviennent pas trop volumineux. Il existe de nombreuses façons de faire pivoter les journaux. La méthode la plus courante consiste à faire pivoter les fichiers journaux périodiquement en fonction du temps et à limiter le nombre de fichiers. Voici un exemple de code :
import logging from logging.handlers import TimedRotatingFileHandler # create a timed rotating file handler handler = TimedRotatingFileHandler('example.log', when='midnight', backupCount=7) # set the handler's formatter formatter = logging.Formatter('%(asctime)s:%(levelname)s:%(message)s') handler.setFormatter(formatter) # get the logger object logger = logging.getLogger('') logger.addHandler(handler) logger.setLevel(logging.INFO) # log some messages logger.debug('This is a debugging message.') logger.info('This is an information message.') logger.warning('This is a warning message.') logger.error('This is an error message.') logger.critical('This is a critical message.')
Dans cet exemple, nous créons un TimedRotatingFileHandler et le configurons pour faire pivoter les fichiers journaux de jour en jour. Nous limitons également le nombre de fichiers journaux en définissant le paramètre backupCount. Lors de la journalisation des informations, nous les ajoutons à l'objet logger au lieu d'utiliser la fonction basicConfig.
Résumé
Dans le développement Web Python, la journalisation est un aspect très important. En utilisant correctement le module de journalisation, nous pouvons mieux comprendre les problèmes et les événements de l'application afin de pouvoir les résoudre à temps et optimiser le code. Plusieurs techniques de journalisation sont mentionnées ci-dessus, notamment l'utilisation de la journalisation de bibliothèque standard, la spécification des niveaux de journalisation, la spécification des formats de journalisation et la rotation des journaux. Chacun peut choisir différentes méthodes en fonction de ses propres besoins et de sa situation réelle.
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!