Skip to main content

structured_log_http_client 0.1.0-dev.5 copy "structured_log_http_client: ^0.1.0-dev.5" to clipboard
structured_log_http_client: ^0.1.0-dev.5 copied to clipboard

StructuredLogHttpClient — a package:http Client wrapper that logs every request, response and failure as structured_log entries, with sensitive headers and query parameters redacted.

example/main.dart

import 'dart:io';

import 'package:http/http.dart' as http;
import 'package:structured_log/structured_log.dart';
import 'package:structured_log_http_client/structured_log_http_client.dart';

/// Talks to a server it starts itself on the loopback interface, so the
/// example runs offline: one call that succeeds, one that answers 404.
Future<void> main() async {
  final server = await HttpServer.bind(InternetAddress.loopbackIPv4, 0);
  server.listen((request) {
    final found = request.uri.path == '/items';
    request.response
      ..statusCode = found ? 200 : 404
      ..headers.contentType = ContentType.json
      ..write(found ? '[{"id":1}]' : '{"error":"not_found"}')
      ..close();
  });

  StructlogConfiguration.configure(
    sinks: [LogSink(name: 'console', output: coloredConsoleOutput)],
  );

  final client = StructuredLogHttpClient(http.Client(), logResponseBody: true);
  final base = Uri.parse('http://127.0.0.1:${server.port}');

  await client.get(base.resolve('/items?access_token=s3cr3t'));
  // package:http does not throw on a status: this is an http_response at
  // warning, not an exception.
  await client.get(base.resolve('/missing'));

  client.close();
  await server.close();
}
0
likes
0
points
759
downloads

Documentation

Documentation

Publisher

unverified uploader

Weekly Downloads

StructuredLogHttpClient — a package:http Client wrapper that logs every request, response and failure as structured_log entries, with sensitive headers and query parameters redacted.

Homepage
Repository (GitHub)
View/report issues

Topics

#logging #http #http-client #network #structured-logging

License

unknown (license)

Dependencies

http, structured_log

More

Packages that depend on structured_log_http_client