[PR #19783] feat: Add optional request and response JSON logging extension with configuration and tests #29240

Closed
opened 2026-02-21 20:45:09 -05:00 by yindo · 0 comments
Owner

Original Pull Request: https://github.com/langgenius/dify/pull/19783

State: closed
Merged: Yes


Summary

This change adds debug logging for HTTP requests and responses in the application. It enhances the debugging capabilities by logging request and response details when the DEBUG log level is enabled. The feature specifically logs JSON request and response bodies in a formatted manner, making it easier to troubleshoot API interactions.

The implementation adds two Flask decorators:

  1. @app.before_request: Logs incoming request details including method, path, and JSON body (if present)
  2. @app.after_request: Logs outgoing response details including status, content type, and JSON body (if present)

This change improves developer experience by providing more visibility into the API traffic during development and debugging sessions.

Resolves #19781

Screenshots

Before After
No request/response logging Detailed request/response logs with formatted JSON bodies

Checklist

Important

Please review the checklist below before submitting your pull request.

  • This change requires a documentation update, included: Dify Document
  • I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!)
  • I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change.
  • I've updated the documentation accordingly.
  • I ran dev/reformat(backend) and cd web && npx lint-staged(frontend) to appease the lint gods
**Original Pull Request:** https://github.com/langgenius/dify/pull/19783 **State:** closed **Merged:** Yes --- # Summary This change adds debug logging for HTTP requests and responses in the application. It enhances the debugging capabilities by logging request and response details when the DEBUG log level is enabled. The feature specifically logs JSON request and response bodies in a formatted manner, making it easier to troubleshoot API interactions. The implementation adds two Flask decorators: 1. `@app.before_request`: Logs incoming request details including method, path, and JSON body (if present) 2. `@app.after_request`: Logs outgoing response details including status, content type, and JSON body (if present) This change improves developer experience by providing more visibility into the API traffic during development and debugging sessions. Resolves #19781 # Screenshots | Before | After | |--------|-------| | No request/response logging | Detailed request/response logs with formatted JSON bodies | # Checklist > [!IMPORTANT] > Please review the checklist below before submitting your pull request. - [ ] This change requires a documentation update, included: [Dify Document](https://github.com/langgenius/dify-docs) - [x] I understand that this PR may be closed in case there was no previous discussion or issues. (This doesn't apply to typos!) - [x] I've added a test for each change that was introduced, and I tried as much as possible to make a single atomic change. - [x] I've updated the documentation accordingly. - [x] I ran `dev/reformat`(backend) and `cd web && npx lint-staged`(frontend) to appease the lint gods
yindo added the pull-request label 2026-02-21 20:45:09 -05:00
yindo closed this issue 2026-02-21 20:45:09 -05:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: langgenius/dify#29240