본문 바로가기
🖥 Programming/📱 Android (Java)

[Android] 로그 전체 출력

by MinChan-Youn 2021. 9. 1.

이번에는 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);
}

무조건 정답인 방법은 아니지만 길이가 긴 문자열을 빠짐없이 출력하는 방법 중 하나인 방법으로 생각하시면 되겠습니다.