


Comment implémenter la journalisation et la surveillance des requêtes dans FastAPI
Comment implémenter la journalisation et la surveillance des requêtes dans FastAPI
Introduction :
FastAPI est un framework Web hautes performances basé sur Python 3.7+, qui fournit de nombreuses fonctions et fonctionnalités puissantes, notamment la vérification automatisée des modèles de requêtes et de réponses, la sécurité, l'optimisation des performances, etc. Dans le développement réel, nous avons souvent besoin d'enregistrer les journaux de requêtes dans l'application à des fins de débogage et d'analyse de surveillance. Cet article explique comment implémenter la journalisation et la surveillance des requêtes dans FastAPI et fournit des exemples de code correspondants.
1. Installer les packages de dépendances
Avant de commencer, nous devons installer certains packages de dépendances nécessaires. Ouvrez le terminal et exécutez la commande suivante :
pip install fastapi uvicorn loguru
Parmi elles, loguru est une bibliothèque de journalisation facile à utiliser, nous l'utiliserons pour enregistrer les journaux de requêtes.
2. Créer une application FastAPI
Tout d'abord, nous devons créer une application FastAPI. Dans le répertoire du projet, créez un fichier nommé main.py et écrivez le code suivant :
from fastapi import FastAPI app = FastAPI() @app.get("/") async def root(): return {"message": "Hello World"}
3. Enregistrez les journaux de requêtes
Ensuite, nous utiliserons la bibliothèque loguru pour enregistrer les journaux de requêtes. Ajoutez le code suivant au fichier main.py :
from loguru import logger import uvicorn from fastapi import FastAPI app = FastAPI() @app.on_event("startup") async def startup_event(): logger.add("logs/request.log", rotation="10 MB") @app.get("/") async def root(): logger.info("Hello World") return {"message": "Hello World"} if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)
Dans le code ci-dessus, nous importons d'abord l'objet logger de la bibliothèque loguru et ajoutons un enregistreur de fichiers. Nous avons spécifié le chemin du fichier journal sous la forme logs/request.log et défini la taille maximale du fichier journal sur 10 Mo. Ensuite, dans la fonction root(), nous utilisons la méthode logger.info() pour enregistrer la requête.
4. Démarrez l'application
Enregistrez le fichier main.py et revenez au terminal, exécutez la commande suivante pour démarrer l'application FastAPI :
uvicorn main:app --reload
Le terminal affichera l'URL d'accès de l'application, telle que http:// 127.0.0.1:8000. En accédant à cette URL dans le navigateur, nous verrons le message "Hello World". Ouvrez le fichier logs/request.log et nous verrons les enregistrements du journal des demandes.
5. Surveillance des demandes
En plus d'enregistrer les journaux de demandes, nous pouvons également surveiller le temps de traitement et le code d'état de la demande. Afin d'implémenter cette fonction, nous devons utiliser le Middleware fourni par FastAPI. Ajoutez le code suivant au fichier main.py :
from loguru import logger import time import uvicorn from fastapi import FastAPI, Request from fastapi.middleware.cors import CORSMiddleware app = FastAPI() @app.on_event("startup") async def startup_event(): logger.add("logs/request.log", rotation="10 MB") @app.on_event("shutdown") async def shutdown_event(): logger.remove(handler_id="request_logger") @app.middleware("http") async def log_request(request: Request, call_next): start_time = time.time() response = await call_next(request) process_time = time.time() - start_time logger.info( "Request: {method} {url} {status_code} {process_time:.2f}ms", method=request.method, url=request.url, status_code=response.status_code, process_time=process_time * 1000, ) return response @app.get("/") async def root(): logger.info("Hello World") return {"message": "Hello World"} if __name__ == "__main__": uvicorn.run(app, host="0.0.0.0", port=8000)
Dans le code ci-dessus, nous importons d'abord le module time et ajoutons un temps de sommeil dans la fonction root() pour simuler le temps de traitement de la requête. Ensuite, nous avons ajouté la logique pour calculer le temps de traitement de la demande et enregistrer le code d'état de la demande dans la fonction middleware log_request(). Dans la fonction shutdown_event(), nous supprimons le logger précédemment ajouté.
Maintenant, redémarrez l'application FastAPI et visitez l'URL de l'application dans votre navigateur. Actualisez la page dans le navigateur et ouvrez le fichier logs/request.log. Nous verrons les enregistrements du journal des demandes, y compris la méthode de demande, l'URL, le code d'état et le temps de traitement.
Conclusion :
Cet article explique comment implémenter la journalisation et la surveillance des requêtes dans FastAPI. Nous utilisons la bibliothèque loguru pour enregistrer les journaux de demandes et utilisons le middleware de FastAPI pour surveiller le temps de traitement des demandes et le code d'état. Ces fonctionnalités nous permettent de mieux suivre et surveiller les demandes et les réponses des candidatures. Ce qui précède est un exemple de code pour implémenter la journalisation et la surveillance des demandes.
Matériaux de référence :
- Documentation officielle de FastAPI : https://fastapi.tiangolo.com/
- documentation officielle de loguru : https://loguru.readthedocs.io/
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!

Outils d'IA chauds

Undresser.AI Undress
Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover
Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool
Images de déshabillage gratuites

Clothoff.io
Dissolvant de vêtements AI

AI Hentai Generator
Générez AI Hentai gratuitement.

Article chaud

Outils chauds

Bloc-notes++7.3.1
Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise
Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1
Puissant environnement de développement intégré PHP

Dreamweaver CS6
Outils de développement Web visuel

SublimeText3 version Mac
Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds



Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge Introduction : FastAPI et Nginx sont deux outils de développement Web très populaires. FastAPI est un framework Python hautes performances et Nginx est un puissant serveur proxy inverse. L'utilisation conjointe de ces deux outils peut améliorer les performances et la fiabilité de vos applications Web. Dans cet article, nous apprendrons comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge. Qu'est-ce que la génération inverse

Comment obtenir une concurrence élevée et un équilibrage de charge des requêtes dans FastAPI Introduction : Avec le développement d'Internet, la concurrence élevée des applications Web est devenue un problème courant. Lorsque nous traitons un grand nombre de demandes, nous devons utiliser des frameworks et des technologies efficaces pour garantir les performances et l’évolutivité du système. FastAPI est un framework Python hautes performances qui peut nous aider à atteindre une concurrence élevée et un équilibrage de charge. Cet article explique comment utiliser FastAPI pour obtenir une concurrence élevée et un équilibrage de charge des requêtes. Nous utiliserons Python3.7

Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI Introduction : Avec le développement rapide des applications Web, la connexion à la base de données et le traitement des transactions sont devenus un sujet très important. FastAPI est un framework Web Python hautes performances apprécié des développeurs pour sa rapidité et sa facilité d'utilisation. Dans cet article, nous présenterons comment implémenter des connexions et des transactions de base de données dans FastAPI pour vous aider à créer des applications Web fiables et efficaces. Partie 1 : Connexion à la base de données dans FastA

La surveillance à domicile est généralement maintenue pendant une à deux semaines. Introduction détaillée : 1. Plus la capacité de stockage est grande, plus la vidéo peut être enregistrée longtemps ; 2. Plus la capacité du disque dur est grande, plus la vidéo peut être enregistrée longtemps ; 3. Selon les exigences des différentes régions et lois et ; réglementations, le nombre de vidéos de surveillance La durée de stockage peut varier ; 4. Certains systèmes de surveillance avancés peuvent également déclencher un enregistrement en fonction de la détection de mouvement ou d'événements spécifiques, économisant ainsi de l'espace de stockage et fournissant des enregistrements plus utiles.

Comment utiliser SwaggerUI pour afficher la documentation de l'API dans FastAPI Introduction : Dans le développement Web moderne, l'API fait partie intégrante. Afin de faciliter le développement et la maintenance, nous devons fournir une documentation API conviviale et facile à utiliser afin que les autres développeurs puissent comprendre et utiliser notre API. Swagger est un format et un outil de documentation d'API populaire qui fournit une interface utilisateur interactive pouvant afficher visuellement les détails de l'API. Dans cet article, je vais vous montrer comment utiliser Fas

FlaskvsFastAPI : Le meilleur choix pour un développement efficace de WebAPI Introduction : Dans le développement de logiciels modernes, WebAPI est devenu un élément indispensable. Ils fournissent des données et des services qui permettent la communication et l'interopérabilité entre différentes applications. Lors du choix d'un framework pour développer WebAPI, Flask et FastAPI sont deux choix qui ont beaucoup retenu l'attention. Les deux frameworks sont très populaires et chacun présente ses propres avantages. Dans cet article, nous examinerons Fl

Comment implémenter la journalisation et la surveillance des demandes dans FastAPI Introduction : FastAPI est un framework Web hautes performances basé sur Python3.7+. Il fournit de nombreuses fonctions et fonctionnalités puissantes, notamment la vérification automatisée des modèles de requêtes et de réponses, la sécurité et l'optimisation des performances. Dans le développement réel, nous avons souvent besoin d'enregistrer les journaux de requêtes dans l'application à des fins de débogage et d'analyse de surveillance. Cet article explique comment implémenter la journalisation et la surveillance des requêtes dans FastAPI et fournit des exemples de code correspondants. 1.Installation

À l'ère numérique d'aujourd'hui, connaître les dernières modifications sur votre site Web est crucial à diverses fins, telles que suivre les mises à jour sur les sites Web de vos concurrents, surveiller la disponibilité des produits ou rester informé des informations importantes. Vérifier manuellement les modifications apportées à votre site Web peut prendre du temps et être inefficace. C’est là que l’automatisation entre en jeu. Dans cet article de blog, nous explorerons comment créer un script Python pour surveiller les modifications du site Web. En tirant parti de la puissance de Python et de certaines bibliothèques pratiques, nous pouvons automatiser le processus de récupération du contenu d'un site Web, le comparer aux versions précédentes et nous informer de toute modification. Cela nous permet de rester proactifs et de réagir rapidement aux mises à jour ou modifications apportées aux sites que nous surveillons. Configuration de l'environnement Avant de commencer à écrire des scripts pour surveiller les modifications du site Web, nous devons configurer P
