플러터 앱에서 API 통신이 잘 이루어지고 있는지 실시간으로 모니터링하고 싶다면 Dio_logger를 사용할 수 있습니다. Dio_logger는 Dio 라이브러리의 일부로서, HTTP 통신 내역을 쉽게 로깅하는 기능을 제공합니다.
다음은 Dio_logger를 사용하여 플러터 앱의 API 통신 내역을 실시간으로 모니터링하는 방법입니다.
1. Dio_logger 패키지 추가
먼저, pubspec.yaml
파일에 Dio_logger 패키지를 추가해야 합니다. 아래와 같이 dependencies 섹션에 dio_logger를 추가해주세요.
dependencies:
dio: ^4.0.0
dio_logger: ^4.0.0
그리고 터미널에서 flutter pub get
명령을 실행하여 패키지를 가져와주세요.
2. Dio_logger 설정
다음으로, Dio_logger를 설정해야 합니다. Dio_logger는 DioInterceptor를 통해 활성화됩니다. 따라서 DioInterceptor를 생성하여 Dio 클라이언트에 추가해야 합니다.
import 'package:dio/dio.dart';
import 'package:dio_logger/dio_logger.dart';
Dio dio = Dio();
dio.interceptors.add(DioLogger());
위의 코드에서 dio
는 Dio 클라이언트 객체입니다. Dio 객체에 DioLogger 인터셉터를 추가하여 API 통신 로그를 기록할 수 있습니다.
3. Dio_logger 사용
이제 Dio_logger를 사용할 수 있습니다. 다음은 Dio를 사용하여 GET 요청을 보내는 예시입니다.
Response response = await dio.get('https://api.example.com/posts');
print(response.data); // API 응답 출력
위의 코드에서 Dio 클라이언트를 사용하여 GET 요청을 보내고, 응답 데이터를 출력하는 것을 볼 수 있습니다. Dio_logger는 이 요청과 응답 내역을 자동으로 로깅하므로, 터미널이나 로그 파일에서 API 통신 내역을 확인할 수 있습니다.
4. 로깅 레벨 설정
Dio_logger는 로깅 레벨을 조정할 수 있는 기능을 제공합니다. 로깅 레벨을 설정하여 원하는 만큼의 로그를 출력할 수 있습니다. 아래는 로깅 레벨을 설정하는 예시입니다.
DioLogger logger = DioLogger();
logger.level = Level.header; // 헤더 정보만 로깅
dio.interceptors.add(logger);
위의 예시에서는 로깅 레벨을 Level.header
로 설정하여 헤더 정보만 로깅하도록 설정했습니다. 로깅 레벨의 종류는 다음과 같습니다.
- Level.none: 로깅하지 않음
- Level.basic: URL과 HTTP 상태 코드만 로깅
- Level.headers: Level.basic에 헤더 정보 추가
- Level.body: Level.headers에 요청 및 응답 본문 추가
- Level.error: Level.body에 에러 발생 시 추가
로깅 레벨을 설정하여 필요한 정보만 로깅하도록 조정할 수 있습니다.
마무리
위의 방법을 따라하면 Dio_logger를 사용하여 플러터 앱의 API 통신 내역을 실시간으로 모니터링할 수 있습니다. Dio_logger는 통신 중에 발생하는 문제를 신속하게 파악하고 해결하는 데 도움이 됩니다. 추가적인 설정이나 활용 방법은 Dio_logger 패키지의 문서를 참고하시기 바랍니다.