carapacik_dio_logger 2.0.0 copy "carapacik_dio_logger: ^2.0.0" to clipboard
carapacik_dio_logger: ^2.0.0 copied to clipboard

Dio logger with normal and compact modes, bounded redacted events, safe console output and cURL export.

example/lib/main.dart

import 'dart:typed_data';

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

/// Use --compact for summaries and --body to enable bodies in compact mode.
/// Add --compact-body for single-line bodies in either request/response mode.
Future<void> main(List<String> args) async {
  final bool compact = args.contains('--compact');
  final dio = Dio(BaseOptions(baseUrl: 'https://api.example.test'))
    ..httpClientAdapter = DemoAdapter()
    ..interceptors.add(
      CarapacikDioLogger(
        mode: compact ? DioLogMode.compact : DioLogMode.normal,
        compactBody: args.contains('--compact-body'),
        requestBody: !compact || args.contains('--body'),
        responseBody: !compact || args.contains('--body'),
        context: (options) => {'operation': options.extra['operation'] ?? '-'},
      ),
    );
  await dio.post<dynamic>(
    '/items',
    data: {'name': 'Example', 'password': 'this-is-redacted'},
    options: Options(extra: {'operation': 'create-item'}),
  );
  dio.close();
}

/// The example is deterministic and sends no network requests.
class DemoAdapter implements HttpClientAdapter {
  @override
  Future<ResponseBody> fetch(
    RequestOptions options,
    Stream<Uint8List>? requestStream,
    Future<void>? cancelFuture,
  ) async {
    return ResponseBody.fromString(
      '{"ok":true,"item":42}',
      201,
      headers: {
        'content-type': ['application/json'],
      },
    );
  }

  @override
  void close({bool force = false}) {}
}
11
likes
160
points
514
downloads

Documentation

API reference

Publisher

verified publishercarapacik.dev

Weekly Downloads

Dio logger with normal and compact modes, bounded redacted events, safe console output and cURL export.

Repository (GitHub)
View/report issues

Topics

#dio #http #network #logging

License

MIT (license)

Dependencies

dio

More

Packages that depend on carapacik_dio_logger