efficient_dio_logger 1.8.0
efficient_dio_logger: ^1.8.0 copied to clipboard
Not pretty, but efficient
import 'dart:developer';
import 'package:dio/dio.dart';
import 'package:efficient_dio_logger/efficient_dio_logger.dart';
import 'package:logging/logging.dart';
void main() {
Logger.root.level = Level.ALL;
Logger.root.onRecord.listen((record) {
log(
record.message,
time: record.time,
sequenceNumber: record.sequenceNumber,
level: record.level.value,
name: record.loggerName,
zone: record.zone,
error: record.error,
stackTrace: record.stackTrace,
);
});
final dio = Dio();
// Recommended for new code: lightweight output.
dio.interceptors.add(EffDioLogger());
// Turn on indented JSON output when needed.
dio.interceptors.add(EffDioLogger(
prettyJson: true,
compact: false,
maxWidth: null,
));
// Use compat mode when migrating from EfficientDioLogger(...).
dio.interceptors.add(EffDioLogger.compat(
request: true,
requestHeader: false,
requestBody: false,
responseHeader: false,
responseBody: true,
error: true,
lineWidth: 160,
maxWidth: 320,
compact: true,
prettyJson: true,
logPrint: (logLine) => Logger('EffLogger').info('$logLine'),
enabled: true,
filter: (options, args) {
if (options.path.contains('/posts')) {
return false;
}
if (args.isResponse && args.hasUint8ListData) {
return false;
}
return true;
},
));
// Deprecated but still supported for legacy call sites.
dio.interceptors.add(EfficientDioLogger());
}