talker_grpc_logger 5.0.0 copy "talker_grpc_logger: ^5.0.0" to clipboard
talker_grpc_logger: ^5.0.0 copied to clipboard

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

talker_grpc_logger #

Lightweight and customizable grpc client logger on talker base.
Talker - Advanced exception handling and logging for dart/flutter applications 🚀

Preview #

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

Note #

At the moment, only unary RPCs are supported. Streaming RPCs will probably be added in the future. Contributions are welcome!

Usage #

Create an interceptor and instrument your RPC client:

import 'package:grpc/grpc.dart';
import 'package:talker_grpc_logger/talker_grpc_logger.dart';

void main() {
  late final channel = GrpcOrGrpcWebClientChannel.toSingleEndpoint(
      host: 'localhost',
      port: 50051,
  );

  // Generate your RPC client as usual, and use the interceptor to log the requests and responses.
  late final rpcClient = YourRPCClient(channel, interceptors: [
    TalkerGrpcLogger()
  ]);
}

Usage with Talker #

Very similar to the section above, just pass a Talker instance to the interceptor:

import 'package:grpc/grpc.dart';
import 'package:talker_flutter/talker_flutter.dart';
import 'package:talker_grpc_logger/talker_grpc_logger.dart';

void main() {
  // Not mandatory, but useful to see the grpc logs in the Talker screen
  final talker = TalkerFlutter.init();

  // Define port and host as you see fit
  var host = 'localhost';
  var port = 50051;

  // transportSecure needs to be true when talking to a server through TLS.
  // This can be disabled for local development.
  // GrpcOrGrpcWebClientChannel is a channel type compatible with web and native. There
  // are other channel types available for each platform.
  late final channel = GrpcOrGrpcWebClientChannel.toSingleEndpoint(
      host: host,
      port: port,
      transportSecure: host == 'localhost' ? false : true);


  final List<ClientInterceptor> interceptors = [
    TalkerGrpcLogger(talker: talker)
  ];

  // Generate your RPC client as usual, and use the interceptor to log the requests and responses.
  late final rpcClient = YourRPCClient(channel, interceptors: interceptors);
}

Token obfuscation #

TalkerGrpcLogger will obfuscate bearer tokens by default. It'll look at the metadata of the request and obfuscate the authorization header. It'll look like Bearer [obfuscated] in the logs. It is highly recommended to keep this option enabled. If you want to disable it, you can pass obfuscateToken: false:

TalkerGrpcLogger(talker: talker, obfuscateToken: true)
1
likes
160
points
409
downloads

Publisher

verified publisherfrezycode.com

Weekly Downloads

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

Repository (GitHub)
View/report issues
Contributing

Documentation

API reference

License

MIT (license)

Dependencies

grpc, talker

More

Packages that depend on talker_grpc_logger