talker_chopper_logger 5.0.1 copy "talker_chopper_logger: ^5.0.1" to clipboard
talker_chopper_logger: ^5.0.1 copied to clipboard

A lightweight, flexible HTTP client logger for Chopper built on the Talker platform, offering advanced exception handling and logging for Dart and Flutter applications.

talker_chopper_logger #

A lightweight, flexible HTTP client logger for Chopper built on the Talker platform, offering advanced exception handling and logging for Dart and Flutter applications.

GitHub codecov Pub License: MIT
talker talker_flutter talker_logger

Preview #

This is how the logs of your http requests will look in the console

For better understanding how it works check Web Demo page

Getting started #

Follow these steps to use this package

Add dependency #

dependencies:
  talker_chopper_logger: ^5.0.1

Usage #

Simply include the TalkerChopperLogger in your Chopper client’s interceptors list to enable it.

final client = ChopperClient(
  /// ... other chopper settings
  interceptors: [
    TalkerChopperLogger(
      settings: const TalkerChopperLoggerSettings(
        printRequestHeaders: true,
        printResponseHeaders: true,
        printResponseMessage: true,
      ),
    ),
  ],
);

Customization #

To offer extensive functionality, TalkerChopperLoggerSettings provides numerous configuration settings and customization options. You can adjust everything to suit your needs. For example:

Enable or disable HTTP request or response logs #

You can toggle response / request printing and headers including

final client = ChopperClient(
  /// ... other chopper settings
  interceptors: [
    TalkerChopperLogger(
      talker: _talker,
      settings: const TalkerChopperLoggerSettings(
        // All HTTP responses enabled for console logging
        printResponseData: true,
        // All HTTP requests disabled for console logging
        printRequestData: false,
        // Response logs including HTTP - headers
        printResponseHeaders: true,
        // Request logs without HTTP - headers
        printRequestHeaders: false,
      ),
    ),
  ],
);

You can print the curl command for the HTTP request in the console. This is useful for debugging and testing purposes.

final client = ChopperClient(
  /// ... other chopper settings
  interceptors: [
    TalkerChopperLogger(
      talker: _talker,
      settings: const TalkerChopperLoggerSettings(
        // Print curl command for HTTP request
        printRequestCurl: true,
      ),
    ),
  ],
);

Hiding sensitive HTTP request headers #

You can hide sensitive HTTP request headers such as Authorization or Cookie in the console logs. This is useful for security purposes.

final client = ChopperClient(
  /// ... other chopper settings
  interceptors: [
    TalkerChopperLogger(
      talker: _talker,
      settings: const TalkerChopperLoggerSettings(
        printRequestHeaders: true,
        printResponseHeaders: true,
        // Hide sensitive HTTP request headers
        hiddenHeaders: {
          'authorization',
          'cookie',
        },
      ),
    ),
  ],
);

Change HTTP logs colors #

Customize your HTTP log colors by defining specific colors for requests, responses, and errors in TalkerChopperLoggerSettings

TalkerChopperLoggerSettings(
  // Blue HTTP requests logs in console
  requestPen: AnsiPen()..blue(),
  // Green HTTP responses logs in console
  responsePen: AnsiPen()..green(),
  // Error HTTP logs in console
  errorPen: AnsiPen()..red(),
);

Filter HTTP logs #

For instance, if your app includes private functionality that you prefer not to log with talker, you can apply filters.

TalkerChopperLoggerSettings(
  // All http request without "/secure" in path will be printed in console 
  requestFilter: (Request request) => !request.url.path.contains('/secure'),
  // All http responses with status codes different than 301 will be printed in console 
  responseFilter: (Response response) => response.statusCode != 301,
)

Using with existing Talker instance #

If your application already uses Talker, simply inject your Talker instance into TalkerChopperLogger so that all logs and errors integrate into your centralized tracking system.

final talker = Talker();
final client = ChopperClient(
  /// ... other chopper settings
  interceptors: [
    TalkerChopperLogger(
      talker: talker,
      settings: const TalkerChopperLoggerSettings(
        printRequestHeaders: true,
        printResponseHeaders: true,
        printResponseMessage: true,
      ),
    ),
  ],
);

Additional information #

This project is actively being developed and welcomes your pull-requests and issue submissions. Thank you for your support. ❤️

3
likes
160
points
227
downloads

Publisher

verified publisherfrezycode.com

Weekly Downloads

A lightweight, flexible HTTP client logger for Chopper built on the Talker platform, offering advanced exception handling and logging for Dart and Flutter applications.

Repository (GitHub)
View/report issues
Contributing

Topics

#network #http #chopper #logging

Documentation

API reference

License

MIT (license)

Dependencies

chopper, equatable, http, meta, talker

More

Packages that depend on talker_chopper_logger