django restフレームワークに到着したすべてのREST要求をログに記録できるようにしたい。 API呼び出しの応答もログに記録します。 すべてのREST APIリクエストとレスポンスを記録する関数はどこで定義できますか?Djangoのビューセットに到着する前に、すべてのREST APIリクエストをログに記録する方法は?
答えて
これはdjango middlewareによって行うことができます。 process_responseとprocess_requestの2つのメソッドがあります。ここでは、必要なすべてのデータをログに記録できます。
class ProfileMiddleware(object):
def process_request(self, request):
# do your logging here
def process_response(self, request, response):
# do your logging here
しかし、これはAPIだけでなく、すべての要求を記録します。 apiだけをログに記録する場合は、このメソッドのurlで/ apiのような接頭辞とログ情報を簡単にチェックできます。
これは、情報の記録方法とAPIの構築方法によって異なります。何か簡単な試みのために
あなたのAPIは、クエリの入力のいくつかの並べ替えを取るので、あなたのAPIリターン
でログcallAPI(query)
logging.info(query)
と同じでそれをラップする必要がありlogging
に探して
return APIJSONanswer
logging.info(APIJSONanswer)
私はロギングモジュールをよく知っています。しかし、私の要点は、各ビューセットでlogging.infoを呼びたくないということです。コールが各ビューセットにルーティングされる前に呼び出される共通の関数がある場合、そこでは単にlogging.infoを呼び出すことができます。 – linuxfreak
する必要があります。あなたのビルドによって異なります。あなたの設定についてもっと知る前に、私はもっと具体的になることはできません。 – MadsVJ
djangoフレームワークに共通の機能があり、ビューセットに行く前にヒットしますか? – linuxfreak
- 1. tastypie djangoですべてのリクエストを記録する方法
- 2. すべてのブラウザコンソールログイベントをログに記録する方法
- 3. Django Rest FrameworkでDjangoにアクションログを記録する方法
- 4. すべての実行コンテキストにわたって再生フレームワークログのリクエストIDをログに記録する方法
- 5. Azure API Managmentでバックエンドリクエストをログに記録する方法
- 6. Backbone.Eventsを使用するすべてのオブジェクトからすべてのイベントをログに記録する方法は?
- 7. iOSアプリケーションのすべてのボタンプレス/インタラクションをログに記録する
- 8. Javaアプリケーションのすべてのネットワークインタラクションをログに記録する
- 9. Wildfly/Jbossのすべてのフィルタをログに記録する
- 10. ノードで行われたすべてのhttp.requestをログに記録する方法
- 11. Railsクエリーが起こる前にログに記録する方法は?
- 12. すべてのブラウザのDOM/JQueryイベントを記録またはログに記録
- 13. Guzzle 6を使用してすべてのAPI呼び出しをログに記録する方法
- 14. ユーザーアクティビティをログに記録するには
- 15. PreparedStatementをログに記録するには?
- 16. 特定のクエリをログに記録する方法は?
- 17. vstest.console.exeのログ記録を有効にする方法は?
- 18. 通話終了後に通話記録をログに記録する方法
- 19. ダイナミックCRM標準SOAP APIコールをログに記録する方法は?
- 20. SpringのSimpleMappingExceptionResolverの例外スタックトレースをログに記録する方法
- 21. Djangoですべてのメッセージをデータベースに記録する
- 22. すべてのココアイベントをログに記録しますか?
- 23. Log4j2でシャットダウンフック内にログを記録する方法は?
- 24. Python - スーパーバイザは標準出力をログに記録する方法 -
- 25. 「キャッチされた」例外をログに記録する方法は?
- 26. オブジェクトをログに記録する方法は?
- 27. NSAssertをXcode4でログに記録する方法は?
- 28. セロリタスクのキューにログを記録する
- 29. プロジェクト内のすべてのUIViewControllerのクラス名をログに記録
- 30. すべてのエラーをキャッチしてログに記録
お返事ありがとうございます。私は次のことをして500のエラーがあります。何が間違っているのか分かりません。 クラスMyMiddleware(): DEF process一(自己、リクエスト): リターン応答(ステータス= status.HTTP_200_OK) DEF process_response(自己、リクエスト、レスポンス): リターン応答(status = status.HTTP_200_OK) あなたは何か気にしませんか? –
linuxfreak
ログのみを必要とする場合は、レスポンスではなく、Noneを返します。ログには何がありますか? – Aldarund
あなたの答えをありがとう。コードは機能します。 クラスMyMiddleware(): デフprocess一(自己、リクエスト): プリント "XXXXX" 戻りなし デフ(自己、リクエスト、レスポンス)process_response: プリント "XXXXX" リターン・レスポンス – linuxfreak