[flutter] Dio_http_cache를 사용한 플러터 앱에서의 로그 레벨 조정 방법

Dio_http_cache는 플러터 앱에서 HTTP 요청을 캐싱하는 기능을 제공하는데, 기본적으로 로그 레벨을 INFO로 설정합니다. 하지만 경우에 따라서는 디버그 중인 동안 더 상세한 로그를 보고 싶을 수 있습니다. Dio_http_cache에서 로그 레벨을 조정하는 방법에 대해 알아보겠습니다.

Dio_http_cache 로그 레벨 조정

Dio_http_cache의 로그 레벨은 DioClient의 logLevel 프로퍼티를 통해 조정할 수 있습니다. 이 프로퍼티는 Dio의 로그 레벨과 동일한 레벨을 가지며, NONE, BASIC, HEADERS, BODY의 네 가지 옵션이 있습니다.

아래는 Dio_http_cache에서 로그 레벨을 조정하는 예제 코드입니다.

import 'package:dio_http_cache/dio_http_cache.dart';
import 'package:dio/dio.dart';

void main() {
  var dio = Dio();
  dio.interceptors.add(DioCacheManager(CacheConfig()).interceptor);
  dio.interceptors.add(LogInterceptor(responseBody: true, requestBody: true));

  // Dio_http_cache의 로그 레벨 설정
  (dio.httpClientAdapter as DefaultHttpClientAdapter).onHttpClientCreate = (client) {
    client.findProxy = (uri) {
      return "PROXY localhost:1087";
    };
    client.badCertificateCallback =
        (X509Certificate cert, String host, int port) => true;
  };
  dio.httpClientAdapter = (dio.httpClientAdapter as DefaultHttpClientAdapter)
      .onHttpClientCreate(dio.httpClientAdapter);
  dio.options.connectTimeout = 5000; //5s
  dio.options.receiveTimeout = 3000; //3s
  dio.options.headers = {
    'User-Agent': 'dio',
    'common-header': 'xx'
  };

  dio.interceptors
      .add(CacheInterceptor(options: cacheOptions, httpClient: dio));
  dio.interceptors.add(LogInterceptor());
  // ...

}

위 예제 코드에서는 DioClient의 logLevel 프로퍼티를 활용하여 로그 레벨을 조정하고 있습니다.

로깅을 위해서는 Dio_http_cache를 초기화 할 때 LogInterceptor를 추가해야 합니다. 위 코드에서는 LogInterceptor를 추가하여 responseBody와 requestBody를 출력할 수 있도록 설정해 주었습니다. 이렇게 하면 HTTP 요청과 응답에 대한 상세한 로그를 확인할 수 있습니다.

마치며

Dio_http_cache를 사용하여 플러터 앱의 HTTP 요청을 캐싱하는 동안 로그 레벨을 조정하는 방법에 대해 알아보았습니다. 로그 레벨을 조정함으로써 디버깅 및 개발 과정에서 도움을 받을 수 있을 것입니다.

더 많은 정보를 원하시면 Dio_http_cache GitHub 페이지를 방문해보세요!