투케이2K

78. (Library/Framework) [라이브러리] [Android] Okhttp Logging Interceptor - http 통신 전문 로그 출력 라이브러리 본문

Library & F.W

78. (Library/Framework) [라이브러리] [Android] Okhttp Logging Interceptor - http 통신 전문 로그 출력 라이브러리

투케이2K 2023. 12. 6. 18:46

[타이틀]

구 분 : Library / 라이브러리

제 목 : [라이브러리] [Android] Okhttp Logging Interceptor - http 통신 전문 로그 출력 라이브러리

 

[설 명]

 

// ------------------------------------------------------------------------

[설 명]

1. Okhttp Logging Interceptor 라이브러리는 okhttp 통신 수행 시 HTTP 요청 및 응답 데이터를 기록하는 OkHttp 인터셉터 입니다

2. Okhttp Logging Interceptor 라이브러리는 http 통신 수행 시 민감 정보를 노출할 수 있으므로, [개발] 환경에서만 디버깅 용으로 사용하도록 권장하고 있습니다

3. Okhttp Logging Interceptor 라이브러리에서는 Level 단계를 설정해 로그 출력 단위를 지정할 수 있습니다

  - BASIC : 요청 및 응답 라인을 기록
  - BODY : 요청 및 응답 줄과 해당 헤더 및 본문(있는 경우)을 기록
  - HEADERS : 요청 및 응답 줄과 해당 헤더를 기록
  - NONE : 로그가 없습니다

// ------------------------------------------------------------------------

[의존성 설정 방법]

    // -----------------------------------------------------------
    // [build.gradle 파일 의존 설정] : [okhttp 통신 라이브러리]
    // -----------------------------------------------------------
    implementation("com.squareup.okhttp3:okhttp:4.9.0")
    implementation 'com.squareup.okhttp3:logging-interceptor:4.9.0'
    // -----------------------------------------------------------

// ------------------------------------------------------------------------

[사용 방법 예시]

     // ------------------------------------------------------
     // TODO [HTTP 통신 전문 로그 기록]
     // ------------------------------------------------------
     HttpLoggingInterceptor httpLogger = new HttpLoggingInterceptor(new HttpLoggingInterceptor.Logger() {
         @Override
         public void log(String message) {
             Log.e("HTTP-LOG", "LOGGER : " + message);
         }
     });
     httpLogger.setLevel(HttpLoggingInterceptor.Level.BODY);





     // ------------------------------------------------------
     // TODO [OK HTTP 객체 선언 및 HTTP 통신 로그 출력 옵션 지정] : addInterceptor
     // ------------------------------------------------------
     OkHttpClient client = new OkHttpClient.Builder()
             .connectTimeout(TIME_OUT_SECOND, TimeUnit.SECONDS) // [커넥션 제한 시간]
             .readTimeout(TIME_OUT_SECOND, TimeUnit.SECONDS) // [read 타임 아웃]
             .writeTimeout(TIME_OUT_SECOND, TimeUnit.SECONDS) // [write 타임 아웃]
             .addInterceptor(httpLogger) // [Http 통신 로그]
             .retryOnConnectionFailure(false)
             .build();

// ------------------------------------------------------------------------

[참고 사이트]

https://github.com/square/okhttp/tree/master/okhttp-logging-interceptor

https://square.github.io/okhttp/3.x/logging-interceptor/okhttp3/logging/HttpLoggingInterceptor.Level.html

// ------------------------------------------------------------------------

 

반응형
Comments