마스터Q&A 안드로이드는 안드로이드 개발자들의 질문과 답변을 위한 지식 커뮤니티 사이트입니다. 안드로이드펍에서 운영하고 있습니다. [사용법, 운영진]

안드로이드 LogCat 내용 로그파일 저장

0 추천
안녕하세요.

한가지 질문사항이 있어 이렇게 질문 드립니다.

현재 앱 개발 후에 디버깅 등을 용이하게 하기 위하여 앱 사용 시 모든 로그를 저장하는 루틴을 만들고 있습니다.

 

https://eunoia3jy.tistory.com/46

 

위 주소에 대한 내용으로 개발을 해보고 있으나 정상적으로 동작하지 않아서

난관에 봉착하였습니다.

 

혹시 로그캣 저장 관련하여 아시는 선배님 답변 주시면 감사하겠습니다.
방탄승 (270 포인트) 님이 2021년 7월 30일 질문

1개의 답변

0 추천
Jake Wharton(Andorid super star developer)이 만든 Timber라는 오픈소스 라이브러리를 Github에서 분석해 보시고 파일에 저장하는 부분을 추가하도록 한번 시도해 보시죠. 지금까지 나온 로그 라이브러리 중 가장 인기있는 라이브러입니다.
spark (227,530 포인트) 님이 2021년 7월 30일 답변
해당 라이브러리도 확인해 보니 필요한 부분에 로그 처리를 해줘야 하는 부분이네요 ㅠㅠ

adb logcat -f "Logfile"
adb 연결 후 위 명령어를 cmd창에 입력하면 실제 Logcat에 올라오는 모든 로그들이 파일로 저장이 되는데...
이 부분을 소스상에서 적용해보고 싶어서요 ㅠㅠ
https://android.googlesource.com/platform/frameworks/base/+/master/core/java/android/util/Log.java
Log.java에 보면 화면에 로그를 출력하는 부분이 있는데, 이 부분을 FileStream 으로 바꿔서 할 수 있는지 시도해 보세요.

그리고 Timber에 보니까 아래와 같은 라인이 있네요.
private fun getStackTraceString(t: Throwable): String {
      // Don't replace this with Log.getStackTraceString() - it hides
      // UnknownHostException, which is not what we want.
      val sw = StringWriter(256)
      val pw = PrintWriter(sw, false)
      t.printStackTrace(pw)
      pw.flush()
      return sw.toString()
    }

PrinterWriter대신에 FileOutputStream을 쓰면 파일로 써질 것 같은데요. 한번 해보시죠.
...