ホームページ バックエンド開発 Python チュートリアル FastAPI でリクエストのロギングとモニタリングを実装する方法

FastAPI でリクエストのロギングとモニタリングを実装する方法

Jul 30, 2023 am 08:29 AM
fastapi モニター リクエストログ

FastAPI でリクエストのログ記録と監視を実装する方法

はじめに:
FastAPI は、Python 3.7 をベースとした高性能 Web フレームワークであり、自動リクエストと応答モデルを含む多くの強力な機能を提供します。検証、セキュリティ、パフォーマンスの最適化など。実際の開発では、デバッグや監視分析のためにアプリケーションにリクエストのログを記録する必要があることがよくあります。この記事では、FastAPI でリクエストのログ記録と監視を実装する方法を紹介し、対応するコード例を示します。

1. 依存関係パッケージをインストールする
始める前に、必要な依存関係パッケージをいくつかインストールする必要があります。ターミナルを開き、次のコマンドを実行します。

pip install fastapi uvicorn loguru
ログイン後にコピー

その中でも、loguru は使いやすいログ ライブラリです。リクエスト ログを記録するために使用します。

2. FastAPI アプリケーションの作成
まず、FastAPI アプリケーションを作成する必要があります。プロジェクト ディレクトリに、main.py という名前のファイルを作成し、次のコードを記述します:

from fastapi import FastAPI

app = FastAPI()

@app.get("/")
async def root():
    return {"message": "Hello World"}
ログイン後にコピー

3. リクエスト ログを記録する
次に、loguru ライブラリを使用してリクエスト ログを記録します。次のコードを 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)
ログイン後にコピー

上記のコードでは、最初に loguru ライブラリのロガー オブジェクトをインポートし、ファイル ロガーを追加します。ログ ファイルのパスを logs/request.log として指定し、ログ ファイルの最大サイズを 10MB に設定しました。次に、root() 関数で、logger.info() メソッドを使用してリクエストを記録します。

4. アプリケーションを開始します
main.py ファイルを保存してターミナルに戻り、次のコマンドを実行して FastAPI アプリケーションを開始します:

uvicorn main:app --reload
ログイン後にコピー

ターミナルはアクセス URL を出力します。 http://127.0.0.1:8000 など、アプリケーションの名前。ブラウザでこの URL にアクセスすると、「Hello World」メッセージが表示されます。 logs/request.log ファイルを開くと、リクエスト ログ レコードが表示されます。

5. リクエストの監視
リクエスト ログの記録に加えて、リクエストの処理時間とステータス コードも監視できます。この機能を実装するには、FastAPI が提供するミドルウェアを使用する必要があります。次のコードを 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)
ログイン後にコピー

上記のコードでは、最初に時間モジュールをインポートし、リクエストの処理時間をシミュレートするために root() 関数にスリープ時間を追加します。次に、リクエストの処理時間を計算し、リクエストのステータス コードを記録するロジックを log_request() ミドルウェア関数に追加しました。 shutdown_event() 関数では、以前に追加したロガーを削除します。

ここで、FastAPI アプリケーションを再起動し、ブラウザーでアプリケーションの URL にアクセスします。ブラウザでページを更新し、logs/request.log ファイルを開くと、リクエスト メソッド、URL、ステータス コード、処理時間などのリクエスト ログ レコードが表示されます。

結論:
この記事では、FastAPI でリクエストのログ記録と監視を実装する方法を紹介します。 loguruライブラリを使用してリクエストログを記録し、FastAPIのミドルウェアを使用してリクエストの処理時間とステータスコードを監視します。これらの機能により、アプリケーションのリクエストと応答をより適切に追跡および監視できるようになります。上記は、リクエストのロギングとモニタリングを実装するコード例です。

参考資料:

  • FastAPI 公式ドキュメント: https://fastapi.tiangolo.com/
  • loguru 公式ドキュメント: https://loguru.readthedocs io/

以上がFastAPI でリクエストのロギングとモニタリングを実装する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 Aug 01, 2023 am 09:44 AM

リバース プロキシとロード バランシングのために FastAPI で Nginx を使用する方法 はじめに: FastAPI と Nginx は 2 つの非常に人気のある Web 開発ツールです。 FastAPI は高性能 Python フレームワークであり、Nginx は強力なリバース プロキシ サーバーです。これら 2 つのツールを一緒に使用すると、Web アプリケーションのパフォーマンスと信頼性が向上します。この記事では、リバース プロキシと負荷分散のために FastAPI で Nginx を使用する方法を学びます。逆生成とは何ですか

FastAPI でリクエストの高い同時実行性と負荷分散を実現する方法 FastAPI でリクエストの高い同時実行性と負荷分散を実現する方法 Jul 31, 2023 pm 01:50 PM

FastAPI でリクエストの高い同時実行性と負荷分散を実現する方法 はじめに: インターネットの発展に伴い、Web アプリケーションの高い同時性が一般的な問題になりました。大量のリクエストを処理するときは、効率的なフレームワークとテクノロジーを使用して、システムのパフォーマンスとスケーラビリティを確保する必要があります。 FastAPI は、高い同時実行性と負荷分散の実現に役立つ高性能 Python フレームワークです。この記事では、FastAPI を使用してリクエストの高い同時実行性と負荷分散を実現する方法を紹介します。 Python3.7を使用します

ホームモニタリングは通常どのくらいの期間継続されますか? ホームモニタリングは通常どのくらいの期間継続されますか? Aug 30, 2023 pm 04:44 PM

自宅モニタリングは通常 1 ~ 2 週間継続されます。詳細な紹介: 1. ストレージ容量が大きいほど、ビデオをより長く保存できます; 2. ハードディスクの容量が大きいほど、ビデオをより長く保存できます; 3. さまざまな地域と法律の要件に従って、規制、監視ビデオの数によって保存時間は異なる場合があります; 4. 一部の高度な監視システムでは、動き検出または特定のイベントに基づいて録画をトリガーすることもできるため、ストレージ スペースを節約し、より有用な録画を提供できます。

FastAPIでデータベース接続とトランザクション処理を実装する方法 FastAPIでデータベース接続とトランザクション処理を実装する方法 Jul 30, 2023 am 11:45 AM

FastAPI でデータベース接続とトランザクション処理を実装する方法 はじめに: Web アプリケーションの急速な開発に伴い、データベース接続とトランザクション処理が非常に重要なトピックになっています。 FastAPI は、その速度と使いやすさで開発者に愛されている高性能 Python Web フレームワークです。この記事では、信頼性が高く効率的な Web アプリケーションを構築するために役立つ、FastAPI でデータベース接続とトランザクションを実装する方法を紹介します。パート 1: FastA でのデータベース接続

Swagger UI を使用して FastAPI で API ドキュメントを表示する方法 Swagger UI を使用して FastAPI で API ドキュメントを表示する方法 Jul 30, 2023 am 10:45 AM

SwaggerUI を使用して FastAPI で API ドキュメントを表示する方法 はじめに: 最新の Web 開発において、API は不可欠な部分です。開発とメンテナンスを容易にするために、他の開発者が API を理解して使用できるように、フレンドリーで使いやすい API ドキュメントを提供する必要があります。 Swagger は、API の詳細を視覚的に表示できる対話型 UI インターフェイスを提供する、一般的な API ドキュメント形式およびツールです。この記事ではFasの使い方を紹介します。

Web サイトの変更を監視するための Python スクリプト Web サイトの変更を監視するための Python スクリプト Aug 29, 2023 pm 12:25 PM

今日のデジタル時代では、競合他社の Web サイトの更新情報の追跡、製品の入手可能性の監視、重要な情報の把握など、さまざまな目的で Web サイトの最新の変更を認識することが重要です。 Web サイトの変更を手動で確認するのは時間がかかり、非効率的です。ここで自動化が活躍します。このブログ投稿では、Web サイトの変更を監視する Python スクリプトを作成する方法を検討します。 Python といくつかの便利なライブラリを活用することで、Web サイトのコンテンツを取得し、以前のバージョンと比較し、変更があれば通知するプロセスを自動化できます。これにより、監視するサイトの更新や変更に対して積極的に対応し、迅速に対応することができます。環境のセットアップ Web サイトの変更を監視するスクリプトを書き始める前に、P をセットアップする必要があります。

FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する FastAPI フレームワークを使用して国際的な Web アプリケーションを構築する Sep 29, 2023 pm 03:53 PM

FastAPI フレームワークを使用して国際的な Web アプリケーションを構築します。FastAPI は、Python 型の注釈と高性能の非同期サポートを組み合わせた高性能 Python Web フレームワークで、Web アプリケーションの開発をよりシンプル、高速、信頼性の高いものにします。国際的な Web アプリケーションを構築する場合、FastAPI は、アプリケーションで複数の言語を簡単にサポートできるようにする便利なツールと概念を提供します。以下に、FastAPI フレームワークを使用してビルドする方法を紹介する具体的なコード例を示します。

FastAPI でリクエストのロギングとモニタリングを実装する方法 FastAPI でリクエストのロギングとモニタリングを実装する方法 Jul 30, 2023 am 08:29 AM

FastAPI でリクエストのログ記録とモニタリングを実装する方法 はじめに: FastAPI は、Python3.7 以降をベースとした高性能 Web フレームワークであり、自動化されたリクエストとレスポンス モデルの検証、セキュリティ、パフォーマンスの最適化など、多くの強力な機能と特徴を提供します。実際の開発では、デバッグや監視分析のためにアプリケーションにリクエストのログを記録する必要があることがよくあります。この記事では、FastAPI でリクエストのログ記録と監視を実装する方法を紹介し、対応するコード例を示します。 1. インストール

See all articles