[flutter] pretty_dio_logger를 사용한 앱의 충돌 및 오류 대응
목차
소개
앱의 네트워크 요청과 응답을 로깅하는 것은 개발 및 디버깅 과정에서 매우 중요합니다. pretty_dio_logger는 Dio 클라이언트를 위한 로깅 라이브러리로, 네트워크 요청과 응답을 가독성 있게 출력하여 디버깅을 용이하게 해줍니다.
문제 및 대응
프로젝트에서 pretty_dio_logger를 사용하여 네트워크 로깅을 구현하였지만, 성능 이슈와 충돌 문제가 발생했습니다.
하나의 대응책으로, pretty_dio_logger를 개별 환경에 맞게 커스터마이징하여 기본 로깅 레벨을 조정하였습니다. 또한, 대용량 데이터 요청 시 로깅을 최소화하고, 디버그 모드에서만 활성화하도록 설정하여 충돌 문제를 완화하였습니다.
예시 코드
아래는 pretty_dio_logger를 사용한 네트워크 로깅을 커스터마이징하는 Flutter 코드의 예시입니다.
import 'package:dio/dio.dart';
import 'package:pretty_dio_logger/pretty_dio_logger.dart';
void main() {
// create a dio instance
Dio dio = Dio();
// set pretty dio logger
prettyDioLogger(dio, requestHeader: true, requestBody: true, responseBody: true, responseHeader: false, error: true, compact: false);
// set custom options for pretty_dio_logger
PrettyDioLogger.setPrintLevel(4); // set the logger to print all logs
PrettyDioLogger.setErrorFilter((error) => error is DioError && error.type == DioErrorType.connectTimeout); // filter out specific errors
// make network request
dio.get('https://api.example.com/data');
}
결론
네트워크 로깅은 앱의 디버깅 및 성능 최적화에 도움이 되지만, 적절한 설정 없이 사용하면 충돌 및 성능 저하 문제가 발생할 수 있습니다. pretty_dio_logger를 세심하게 커스터마이징하여 문제를 해결하고, 안정적으로 네트워크 로깅을 구현할 수 있었습니다.
이러한 방법으로 네트워크 로깅을 안전하게 구현하고, 앱의 성능과 안정성을 유지할 수 있습니다.
참고문헌:
- https://pub.dev/packages/pretty_dio_logger