2014-11-18 12 views
1

나는 사용자 정의 로거를 사용하여 Logcat과 (파일이 사용 가능한 경우) 파일에 모두 로그합니다.Retrofit -> 로그에 파일

이것은 테스터로부터 버그 보고서를받을 때 정말 도움이됩니다 (첨부 된 로그가있는 버그 보고서를 보내기 위해 앱 내에 버튼이 있기 때문에).

문제 : 저는 RetroFit을 사용하고 있습니다 만, 은 로그를 가로 채고 가능하면을 자신의 사용자 정의 로거와 함께 파일로 전송할 수 없습니다.

가능합니까?

OkHttpClient.Builder builder = new OkHttpClient.Builder(); 
... 
HttpLoggingInterceptor.Logger fileLogger = new HttpLoggingInterceptor.Logger() { 
    @Override 
    public void log(String s) { 
     writeToFile(s); 
    } 
} 
Interceptor fileLoggerInterceptor = new HttpLoggingInterceptor(fileLogger); 
builder.addInterceptor(fileLoggerInterceptor); 
.... 

writeToFile은 어디입니다 :

답변

5

당신은

new RestAdapter.Builder() 
... other methods 
.setLogLevel(RestAdapter.LogLevel.FULL) 
.setLog(new RestAdapter.Log() { 
     @Override 
     public void log(String message) { 
      // code for storing logs in file 
     } 
    }) 
.build(); 

당신이 갱신이 당신에게

0

에 맞는 어떤 수준의 로그 레벨을 조정해야 그것을 만들 때 RestAdapter하는 로거를 추가 할 수 있습니다 실제로 파일 시스템에 쓰십시오.

instanc e :

try { 
    FileOutputStream outputStream = mContext.openFileOutput(FILE_NAME, Context.MODE_PRIVATE); 
    outputStream.write(data.getBytes()); 
    outputStream.close(); 
} catch (FileNotFoundException e) { 
    e.printStackTrace(); 
} catch (IOException e) { 
    e.printStackTrace(); 
}