log_saver_dio_interceptor 1.0.0 copy "log_saver_dio_interceptor: ^1.0.0" to clipboard
log_saver_dio_interceptor: ^1.0.0 copied to clipboard

A Dio Interceptor that saves all requests and responses in a Database

LogSaverDioInterceptor Flutter Package #

The LogSaverDioInterceptor is a Flutter package designed to integrate seamlessly with the Dio HTTP client. It enables developers to log API requests, responses, and errors to a database, with additional support for exporting logs as CSV files and clearing log history.

Features #

  • Log API requests, responses, and errors with detailed information.
  • Export logged data as a CSV file for analysis.
  • Filter logs by date, message, URL, and HTTP method during export.
  • Clear all logs with a single function.
  • Easy integration with any Flutter application using the Dio client.

Installation #

Add the following dependency to your pubspec.yaml file:

dependencies:
  log_saver_dio_interceptor:

Then run:

flutter pub get

Usage #

Adding the Interceptor #

Integrate the LogSaverDioInterceptor with your Dio instance:

import 'package:dio/dio.dart';
import 'log_saver_dio_interceptor.dart';

final dio = Dio();
dio.interceptors.add(LogSaverDioInterceptor());

Export Logs to CSV #

To export logs as a CSV file:

import 'dart:typed_data';

final Uint8List csvBytes = await LogSaverDioInterceptor.exportLogsToCSVAsBytes(
  startDate: DateTime(2023, 1, 1),
  endDate: DateTime(2023, 12, 31),
  message: "Error",
  method: "GET",
);

// Save `csvBytes` to a file or share it

Clear Logs #

To clear all logged data:

await LogSaverDioInterceptor.clearLogs();

Log Structure #

The package logs the following information for each API request:

  • URL: The endpoint of the API request.
  • Method: HTTP method (GET, POST, PUT, DELETE, etc.).
  • Headers: Request headers.
  • Body: Request body.
  • Status Code: Response status code.
  • Message: Custom messages indicating the type of log (e.g., "Request initiated", "Response received", "Error: message").

Example #

Below is a complete example integrating LogSaverDioInterceptor:

import 'package:dio/dio.dart';
import 'log_saver_dio_interceptor.dart';

void main() async {
  final dio = Dio();
  dio.interceptors.add(LogSaverDioInterceptor());

  try {
    final response = await dio.get('https://jsonplaceholder.typicode.com/posts/1');
    print(response.data);
  } catch (e) {
    print(e);
  }

  // Export logs to CSV
  final csvBytes = await LogSaverDioInterceptor.exportLogsToCSVAsBytes();
  // Handle `csvBytes` as needed

  // Clear logs
  await LogSaverDioInterceptor.clearLogs();
}

Dependencies #

This package depends on:

  • Dio: For making HTTP requests.

Contributing #

Contributions are welcome! Please create a pull request or open an issue on the GitHub repository if you encounter any problems or have feature suggestions.

License #

This package is licensed under the MIT License. See the LICENSE file for details.


For questions or support, feel free to reach out to the package maintainer.

0
likes
140
points
25
downloads

Publisher

verified publisherwhitecodel.com

Weekly Downloads

A Dio Interceptor that saves all requests and responses in a Database

Repository (GitHub)

Documentation

API reference

License

MIT (license)

Dependencies

csv, dio, flutter, path, path_provider, sqflite

More

Packages that depend on log_saver_dio_interceptor