이번에는 Log(로그) 전체 출력하는 방법에 대해서 알아보겠습니다.
Log를 활용할때 출력한 String의 길이가 일정 길이 이상이면 더 이상 표시가 되지 않는 부분이 있습니다.
이러한 문제를 해결하기위해 간단한 Tip을 공유하고자 합니다.
/dev/log/events의 내용을 보면 로그의 실제 길이에 대해 표시가 되고 있습니다.
#define LOGGER_ENTRY_MAX_LEN (4*1024)
#define LOGGER_ENTRY_MAX_PAYLOAD \ (LOGGER_ENTRY_MAX_LEN - sizeof(struct logger_entry))
로그는 실제로 4076bytes까지만 출력된다는 것을 알 수 있습니다.
따라서 길이가 긴 Log를 출력시에는 MAX_LEN전에 길이를 잘라 다음줄에 출력해야합니다.
다음과 같이 분리하도록 출력하면 긴 String도 빠짐없이 출력 할 수 있습니다.
String str = "매우긴 길이를 가진 문자열~~";
int MAX_LEN = 2000; //2,000 bytes 마다 짤라서 출력
int len = str.length();
if(len > MAX_LEN){
//2,000 bytes보다 길이가 긴 문자열일 경우
int pos = 0, nextPos = 0;
while(pos < len){
nextPos += MAX_LEN;
Log.e("TAG", str.substring(pos, nextPos > pos? pos : nextPos));
pos = nextPos;
}
}else{
Log.e("TAG", str);
}
무조건 정답인 방법은 아니지만 길이가 긴 문자열을 빠짐없이 출력하는 방법 중 하나인 방법으로 생각하시면 되겠습니다.
'🖥 Programming > 📱 Android (Java)' 카테고리의 다른 글
[Android] TabLayout에 Viewpager연결하기 (0) | 2021.10.05 |
---|---|
[Android] Dialog Method 정리 (0) | 2021.09.28 |
[android] Task 'assembleDebug' not found in project ':app'. 문제해결 (0) | 2021.09.27 |
[Android] Dialog 외부 터치 금지 (바깥 터치 금지) (0) | 2021.09.16 |
[Android] Dialog 외부 클릭시 Dialog cancel 금지 (0) | 2021.08.27 |
[안드로이드] TextView에서 자동으로 이루어지는 Word wrap을 막는 방법 (0) | 2021.08.27 |
[Android] equals, equalsIgnoreCase 차이 (0) | 2021.08.26 |
[android] 투명도 설정하는 방법 (0) | 2021.08.26 |