dio_logger.dart 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
  1. import 'dart:developer';
  2. import 'package:dio/dio.dart';
  3. class DioLogger extends Interceptor {
  4. bool baseurl;
  5. bool path;
  6. bool statuscode;
  7. bool reqdata;
  8. bool resdata;
  9. DioLogger(
  10. {this.baseurl = false,
  11. this.path = true,
  12. this.statuscode = true,
  13. this.reqdata = true,
  14. this.resdata = false});
  15. @override
  16. void onRequest(RequestOptions options, RequestInterceptorHandler handler) {
  17. handler.next(options);
  18. }
  19. @override
  20. void onResponse(Response response, ResponseInterceptorHandler handler) {
  21. if (baseurl || path || statuscode || reqdata || resdata) {
  22. log("DioLogger: ____________________________________________________________________________");
  23. if (baseurl) ("DioLogger: |${response.requestOptions.baseUrl} ");
  24. if (path) {
  25. log("DioLogger: |${response.requestOptions.method} ${response.requestOptions.path}");
  26. }
  27. if (statuscode) {
  28. log("DioLogger: |${response.statusCode} ${response.statusMessage} restype:${response.requestOptions.responseType}");
  29. }
  30. if (reqdata) log("DioLogger: |reqdata: ${response.requestOptions.data}");
  31. if (resdata) log("DioLogger: |response: ${response.data}");
  32. log("DioLogger: ____________________________________________________________________________");
  33. }
  34. handler.next(response);
  35. }
  36. @override
  37. void onError(DioException err, ErrorInterceptorHandler handler) {
  38. log("DioLogger: !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!");
  39. log("-----error: ${err.error} ${err.message} restype:${err.requestOptions.responseType}");
  40. if (baseurl) ("DioLogger: |${err.requestOptions.baseUrl} ");
  41. if (path) {
  42. log("DioLogger: |${err.requestOptions.method} ${err.requestOptions.path}");
  43. }
  44. if (statuscode) {
  45. log("DioLogger: |${err.response?.statusCode} ${err.response?.statusMessage}");
  46. }
  47. if (reqdata) log("DioLogger: |reqdata: ${err.requestOptions.data}");
  48. if (resdata) log("DioLogger: |response: ${err.response?.data}");
  49. log("DioLogger: ____________________________________________________________________________");
  50. super.onError(err, handler);
  51. }
  52. }