일반적으로 안드로이드에서 로그는 다음과 같은 static method를 호출하여 출력합니다.
Log.v (VERBOSE)
Log.d (DEBUG)
Log.i (INFORMATION)
Log.w (WARNING)
Log.e (ERROR)
Log.wtf (ASSERT/FATAL)
단, 출력할 String의 길이가 일정 수준 이상이면 더 이상 표시가 되지 않습니다.
/dev/log/events의 내용을 보면 아래와 같으며 실제로는 4076 bytes까지만 출력됩니다.
#define LOGGER_ENTRY_MAX_LEN (4*1024)
#define LOGGER_ENTRY_MAX_PAYLOAD (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry))
따라서 적절한 시점에 로그를 끊어주고 출력해주는 것이 좋습니다.
다음과 같이 분리하도록 출력하게 하면 긴 매우 긴 String도 누락 없이 출력할 수 있습니다.
final int MAX_LEN = 2000; // 2000 bytes 마다 끊어서 출력
int len = s.length();
if(len > MAX_LEN) {
int idx = 0, nextIdx = 0;
while(idx < len) {
nextIdx += MAX_LEN;
Log.e(TAG, s.substring(idx, nextIdx > len ? len : nextIdx));
idx = nextIdx;
}
} else {
Log.e(TAG, mFuncTag, s);
}
이외의 방법은 아래 링크를 참조하여 자유롭게 사용하시면 됩니다.
참고
https://stackoverflow.com/questions/8888654/android-set-max-length-of-logcat-messages
'소프트웨어 > 안드로이드' 카테고리의 다른 글
[Android] MVVM Anti Pattern (0) | 2020.05.14 |
---|---|
[안드로이드] 코드에서 Ping 확인 (0) | 2020.04.28 |
[Android Studio/SQLScout ] SQLite DB 뷰어 플러그인 (0) | 2020.03.31 |
ADB Wi-Fi[와이파이/무선]으로 연결하는 방법 (0) | 2020.03.23 |
[Android Studio] 파일을 잘못 불러오는 경우 (2) | 2019.11.05 |