플러터(Flutter) 앱을 개발하다 보면 API 호출 중에 발생하는 오류를 디버깅해야 할 때가 있습니다. 이때 dio_logger
패키지를 사용하면 API 호출과 응답 로그를 확인하고 문제를 파악하는 데 도움이 됩니다. 이번 포스트에서는 dio_logger
를 사용하여 플러터 앱에서 API 호출 오류를 디버깅하는 방법을 알아보겠습니다.
dio_logger
패키지 설치하기
먼저, 프로젝트에 dio_logger
패키지를 추가해야 합니다. pubspec.yaml
파일의 dependencies
섹션에 다음과 같이 패키지를 추가합니다:
dependencies:
dio: ^3.0.0
dio_logger: ^2.0.3
의존성을 추가한 후 터미널에서 flutter pub get
명령어를 실행하여 패키지를 설치합니다.
dio_logger
설정하기
dio_logger
를 사용하기 위해 Dio
인스턴스를 생성하고 dio_logger
인터셉터를 추가해야 합니다. 다음은 기본적인 설정 방법입니다.
import 'package:dio/dio.dart';
import 'package:dio_logger/dio_logger.dart';
void main() {
Dio dio = Dio();
dio.interceptors.add(DioLogger());
// API 호출 코드 작성
}
DioLogger
를 dio.interceptors
에 추가하면 dio
인스턴스가 각 API 호출과 응답을 로깅합니다.
dio_logger
사용하기
이제 dio_logger
가 설정되었으므로 API 호출 로그를 확인할 수 있습니다. 예를 들어, GET 요청을 보내는 경우 다음과 같이 코드를 작성할 수 있습니다.
void fetchPosts() async {
try {
Response response = await dio.get('https://api.example.com/posts');
print(response.data);
} catch (error, stacktrace) {
print('Error: $error');
print('Stacktrace: $stacktrace');
}
}
API 호출이 성공하는 경우, 로그는 다음과 같이 표시됩니다:
I/flutter ( 1234): [DIO]---> GET /posts
I/flutter ( 1234): [DIO]Headers:
I/flutter ( 1234): [DIO]Authorization: Bearer xxxxxxx
I/flutter ( 1234): [DIO]Accept-Encoding: gzip, deflate
I/flutter ( 1234): [DIO]Content-Type: application/json
I/flutter ( 1234): [DIO]Connection: keep-alive
I/flutter ( 1234): [DIO]Accept-Language: en-US,en;q=0.9,ko;q=0.8
I/flutter ( 1234): [DIO]Content-Length: 0
I/flutter ( 1234): [DIO]---> END GET
I/flutter ( 1234): [DIO]<--- HTTP 200 (200)
I/flutter ( 1234): [DIO]Content-Type: application/json; charset=utf-8
I/flutter ( 1234): [DIO]Content-Disposition: inline
I/flutter ( 1234): [DIO]Server: example
I/flutter ( 1234): [DIO]X-Powered-By: PHP/7.4.1
I/flutter ( 1234): [DIO]X-RateLimit-Limit: 60
I/flutter ( 1234): [DIO]X-RateLimit-Remaining: 59
I/flutter ( 1234): [DIO]X-RateLimit-Reset: 1609882934
I/flutter ( 1234): [DIO]---> END HTTP (0-byte body)
I/flutter ( 1234): { "posts": [...] }
API 호출이 실패하는 경우, 오류 메시지와 스택 트레이스가 출력됩니다.
마무리
dio_logger
를 사용하면 플러터 앱에서 API 호출 중 발생하는 오류를 디버깅하기가 더욱 쉬워집니다. 이 패키지를 사용하여 API 호출과 응답의 로그를 확인하고 문제를 파악해 보세요.
더 자세한 내용은 [dio_logger GitHub 레포지토리](https://github.com/