Dio는 네트워크 요청에 사용되는 강력하고 다양한 기능을 갖춘 라이브러리입니다. Flutter 애플리케이션에서 네트워크 요청에 대해 로깅 및 디버깅을 하고 싶을 때, pretty_dio_logger 패키지가 유용합니다. pretty_dio_logger는 Dio 패키지의 로깅을 개선해주는 패키지로, 네트워크 요청과 응답에 대한 세부 정보를 터미널에서 보기 쉽게 출력해줍니다.
이번 글에서는 pretty_dio_logger를 활용하여 응답을 저장하고 이를 관리하는 방법에 대해 알아보겠습니다.
pretty_dio_logger 사용하기
먼저 pretty_dio_logger 패키지를 사용하기 위해 pubspec.yaml
파일에 다음을 추가하세요.
dependencies:
dio: ^4.0.0
pretty_dio_logger: ^1.0.2
이후 터미널에서 flutter packages get
을 실행하여 패키지를 가져옵니다.
flutter packages get
pretty_dio_logger를 Dio에 적용하는 방법은 다음과 같습니다.
import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
void main() {
Dio dio = Dio();
dio.interceptors.add(PrettyDioLogger());
}
응답 데이터 저장하기
pretty_dio_logger를 사용하여 응답을 확인하고 싶을 때, 다음과 같이 응답 데이터를 파일로 저장할 수 있습니다.
Dio dio = Dio();
dio.interceptors.add(PrettyDioLogger(
responseBody: true, // 응답 본문을 출력할지 여부
formatter: JsonFormatter(), // JSON 형식의 응답만 볼 것인지 여부
error: true, // 에러 응답을 볼 것인지 여부
compact: false, // 요청/응답을 한 줄로 출력할지 여부
maxWidth: 90, // 요청/응답의 최대 너비
headers: true, // 헤더를 출력할지 여부
logPrint: (log) async {
// 로그를 파일로 저장
await saveLogToFile(log);
},
));
저장된 데이터 관리하기
저장된 응답 데이터를 관리하기 위해 내부 저장소를 활용할 수 있습니다. SharedPreferences 또는 파일 시스템을 사용하여 데이터를 저장하고 관리할 수 있습니다.
예를 들어, 파일 시스템을 이용하여 저장된 데이터를 관리하는 코드는 다음과 같습니다.
import 'dart:io';
import 'dart:convert';
void saveLogToFile(String log) async {
// 로그를 파일로 저장
final file = File('log.txt');
await file.writeAsString(log);
}
Future<String> getLogFromFile() async {
// 파일에서 로그를 불러옴
try {
final file = File('log.txt');
String log = await file.readAsString();
return log;
} catch (e) {
return 'Error reading log file';
}
}
결론
pretty_dio_logger를 사용하여 네트워크 요청과 응답을 로깅하고 저장하는 방법에 대해 알아보았습니다. 이를 통해 애플리케이션의 디버깅과 데이터 관리를 보다 효율적으로 할 수 있습니다.pretty_dio_logger는 개발자들이 네트워크 통신을 이해하고 문제를 해결하는 데 도움이 되는 강력한 도구입니다.
또한, 저장된 데이터를 관리하기 위해 내부 저장소를 활용하는 방법에 대해 알아보았습니다. 이를 통해 앱의 성능을 개선하고 필요한 데이터를 관리할 수 있습니다.
pretty_dio_logger와 저장된 데이터 관리를 통해 애플리케이션의 네트워크 요청을 보다 효율적으로 관리하고 디버깅할 수 있습니다.
참고:
pub.dev - pretty_dio_logger
Flutter Dio Package