Logging HTTP com Dio
Use DioLoggingInterceptor para emitir Log Events estruturados de requisições, respostas e erros HTTP. Ele delega para um StructureLogger já configurado (e seus sinks como SinkSeq).
Configuração
import 'package:dio/dio.dart';
import 'package:structured_logger/structured_logger.dart';
import 'package:structured_logger_dio_interceptor/structured_logger_dio_interceptor.dart';
final logger = StructureLogger()
..addSink(SinkSeq(
'https://your-seq.example.com',
apiKey: 'your-api-key',
deviceIdentifier: 'my-app',
));
final dio = Dio()..interceptors.add(DioLoggingInterceptor(logger));
Comportamento
onRequest: gera UUID correlacional (header padrãoX-Request-Seq-Id), defineX-Request-Start-Time, emite eventoREQUEST.onResponse: emiteRESPONSEcomstatusCode,elapsedTime(ms), headers, data.onError: emiteON_ERROR(nível error) com status opcional e dados de erro.
Todos os eventos passam pelos sinks registrados — sem HTTP direto do interceptor.
Construtor
DioLoggingInterceptor(
this._logger, {
this.correlationalHeaderName = 'X-Request-Seq-Id',
})
correlationalHeaderNamenão pode ser vazio (assert).deviceIdentifierfica emSinkSeq.