[flutter] pretty_dio_logger를 사용한 앱의 충돌 및 오류 대응

목차

소개

앱의 네트워크 요청과 응답을 로깅하는 것은 개발 및 디버깅 과정에서 매우 중요합니다. pretty_dio_loggerDio 클라이언트를 위한 로깅 라이브러리로, 네트워크 요청과 응답을 가독성 있게 출력하여 디버깅을 용이하게 해줍니다.

문제 및 대응

프로젝트에서 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를 세심하게 커스터마이징하여 문제를 해결하고, 안정적으로 네트워크 로깅을 구현할 수 있었습니다.

이러한 방법으로 네트워크 로깅을 안전하게 구현하고, 앱의 성능과 안정성을 유지할 수 있습니다.

참고문헌: