Maison développement back-end Tutoriel Python 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

Jul 30, 2023 am 08:29 AM
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
Copier après la connexion

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"}
Copier après la connexion

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)
Copier après la connexion

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
Copier après la connexion

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)
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

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

AI Clothes Remover

AI Clothes Remover

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

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

AI Hentai Generator

AI Hentai Generator

Générez AI Hentai gratuitement.

Article chaud

R.E.P.O. Crystals d'énergie expliqués et ce qu'ils font (cristal jaune)
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Meilleurs paramètres graphiques
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. Comment réparer l'audio si vous n'entendez personne
3 Il y a quelques semaines By 尊渡假赌尊渡假赌尊渡假赌
Où trouver la courte de la grue à atomide atomique
1 Il y a quelques semaines By DDD

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

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

Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge Comment utiliser Nginx avec FastAPI pour le proxy inverse et l'équilibrage de charge Aug 01, 2023 am 09:44 AM

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 Comment obtenir une concurrence élevée et un équilibrage de charge des requêtes dans FastAPI Jul 31, 2023 pm 01:50 PM

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 Comment implémenter la connexion à la base de données et le traitement des transactions dans FastAPI Jul 30, 2023 am 11:45 AM

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

Combien de temps la surveillance à domicile est-elle généralement maintenue ? Combien de temps la surveillance à domicile est-elle généralement maintenue ? Aug 30, 2023 pm 04:44 PM

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 l'interface utilisateur Swagger pour afficher la documentation de l'API dans FastAPI Comment utiliser l'interface utilisateur Swagger pour afficher la documentation de l'API dans FastAPI Jul 30, 2023 am 10:45 AM

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

Flask vs FastAPI : le meilleur choix pour un développement efficace d'API Web Flask vs FastAPI : le meilleur choix pour un développement efficace d'API Web Sep 27, 2023 pm 09:01 PM

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 requêtes dans FastAPI Comment implémenter la journalisation et la surveillance des requêtes dans FastAPI Jul 30, 2023 am 08:29 AM

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

Script Python pour surveiller les modifications du site Web Script Python pour surveiller les modifications du site Web Aug 29, 2023 pm 12:25 PM

À 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

See all articles