DioLoggerPlus

DioLoggerPlus is a custom logging interceptor for the Dio HTTP client in Flutter. It helps developers easily debug HTTP requests and responses by printing clean, formatted logs in the console.


โœจ Features

  • โœ… Logs HTTP requests and responses
  • ๐Ÿ“ฆ Pretty-prints request/response bodies
  • ๐Ÿ”ธ Logs request headers
  • โŒ Logs errors with status and response body
  • ๐Ÿงฉ Optional compact or indented JSON
  • ๐Ÿ›  Fully customizable
  • ๐Ÿ” Supports debug-only logging (enabled via kDebugMode)

๐Ÿ“ฆ Installation

Add dio to your pubspec.yaml:

dependencies:
  dio: ^5.0.0

Then copy the DioLoggerPlus class into your project.

๐Ÿš€ Usage

Add the interceptor to your Dio instance:

import 'package:dio/dio.dart';
import 'dio_logger_plus.dart'; // import your class

final dio = Dio();

dio.interceptors.add(DioLoggerPlus(
  request: true,
  requestHeader: true,
  requestBody: true,
  responseBody: true,
  error: true,
  compact: true,
  maxWidth: 90,
  isOnlyDebug: true,
));

โš™๏ธ Configuration Options

Parameter Type Default Description
request bool true Logs HTTP method and URL
requestHeader bool true Logs request headers
requestBody bool true Logs request body
responseBody bool true Logs response body
error bool true Logs errors and error bodies
compact bool true Minimized JSON indentation
maxWidth int 90 (Reserved) Max width of the log lines
isOnlyDebug bool true Enables logging only in debug mode

๐Ÿงช Example Output

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€โ”€ ๐Ÿ“ค REQUEST [2025-06-11 14:32:10] โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ”‚ โžก๏ธ GET https://api.example.com/user/123
โ”‚ ๐Ÿ”ธ Headers:
โ”‚ {
โ”‚   "Authorization": "Bearer token123"
โ”‚ }
โ”‚ ๐Ÿ“ฆ Body:
โ”‚ {
โ”‚   "email": "test@example.com"
โ”‚ }
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

โ”Œโ”€โ”€โ”€โ”€โ”€โ”€ โœ… RESPONSE (200 OK) [+123ms] โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€
โ”‚ URL: https://api.example.com/user/123
โ”‚ ๐Ÿ“ฆ Body:
โ”‚ {
โ”‚   "id": 123,
โ”‚   "name": "John Doe"
โ”‚ }
โ””โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€โ”€

๐Ÿ” Debug-Only Logging

By default, logs are shown only in debug mode (kDebugMode). To enable logs in release mode, set isOnlyDebug: false.

Libraries

dio_logger_plus