Log에대해 알아보자
수없이 프로젝트를 진행하고 안스에서 살며 로그 기록은 거의 매번 보는것 같다.
버전 충돌에도 로그를 확인, 앱 테스트에도 로그 확인 및 출력 해보고..
매번 로그를 활용하긴 하지만 자세히 파보지는 않고, 생각보다 로그창을 잘 사용못하고 무슨 기능이 있는 지 명확하게 모르는 것 같다.
이렇게 남아 로그 관련 정보를 저장하는 포스트를 시작하게 되어 다행이다.
Log , Logcat 이라는 말이 익숙하다. 그러나 무슨 기능이 있는지는 잘 모른다.
항상 작업을 하면 하단에 위치하고 있다. (아닐수도 있지만 대부분)
이런식으로 창을 만들거나 하단에 탭에 고정이 된다. 해당 로그 창도 우측 상단에 나사 버튼을 누르면 보이는 형태를 다르게 할 수 있다.
거두 절미하고, 공식 문서를 보자 ,
Logcat을 이용한 로그 작성 및 보기 | Android 개발자 | Android Developers
Android 스튜디오에서 Logcat 창에 시스템 메시지를 표시하는 방법을 알아보세요.
developer.android.com
위의 문서들을 보며, 내가 몰랐던 Log의 세계로 들어가보았다.
1. Log 기록을 좀더 간결하게 보는 방법 및 내가 원하는 정보로 필터링 하는방법
생각보다 간단하게 로그를 단순히 필터할 수 있다.
바로 이부분이다.
매번 보던 로그창이지만 이런 버튼을 눌러본다는 생각을 못했다. 해당 버튼을 누르면 아래와 같은 창이 뜬다.
이 창을보면 여러 체크박스들이 뜬다.
1. 날짜와 시간을 표시해준다.
2. 초까지 나타내준다? (굳이)
3. 프로세스 쓰레드 ID를 보여준다.(?흠..)
4. 패키지 이름을 보여준다.
5. 태그를 나타낸다
해당 버튼들을 누르면 친절하게 (갓구글) 샘플로 보여준다.
아래의 화면은 3번과 5번 체크 후 보여지는 로그들이다.
아래의 화면은 아무것도 선택안하고 보여지는 로그화면이다.
확실히 간결하고 편해졌다.
다음은 이거다.
처음에는 그냥 로그 기록이 올라가는것이 녹화한다는 말인줄 알았다. 그런데 항상 까먹는다,
에뮬레이터나 테스트용 디바이스 상에서의 화면녹화를 이렇게 하면되었다.
해당 버튼을 누르면 아래와 같은 화면이 뜬다.
show tap 을 설정하고 끄는 것은 아마 내가 탭한 곳이 표시되게 녹화한다는 것 같아서 키고 녹화 했다.
이렇게 하면 계속 초가 지나는화면이 뜬다.
이상태로 해당 에뮬레이터나 테스트기를 화면테스트를 해보면 자연스럽게 녹화한다. 그리고 stop버튼을 누르면 해당 영상이 저장되며 저장경로를 묻는 창이 뜬다.
그러면 이렇게 영상이 저장이 되고, 해당 시연 모습을 간단히 만들수 있다.
이게 왜 중요하냐면, 앱 개발을 하면 테스트는 필수다. 이런 과정에서 시연 영상을 제작하는것이 에뮬레이터나 테스트기에서 해보는게 영상으로 남겨야 할 때가 있다. 이럴때 사용하면 간편하게 사용할 수 있다.
이렇게 좋은 기능이 있는데도 매번 까먹고 안쓰는건 함정이다.
이젠 안까먹고 꼭꼭 써야겠다. (저번에도 알았던거 같은데, 멍청하게 까먹었다...)
동영상 녹화 | Android 개발자 | Android Developers
동영상 도구를 사용하여 기기의 화면을 동영상으로 만듭니다.
developer.android.com
Log 의 종류
매번 보는 로그이지만, 정작 Log.d만 쓰지 다른건 잘 모른다.
위와 같은 특징들이 있다고 한다.
개발 단계를 제외하고 상세 로그를 앱으로 컴파일하면 안 됩니다. 디버그 로그는 런타임에 컴파일되지만 삭제되는 반면, 오류, 경고 및 정보 로그는 계속 유지됩니다.
문서를 읽어보니 이런 정보조차 몰랐다. 보안 측면에서 Log.d를 많이 쓰는 이유를 알것 같았다.
나름 공부가 되서 놀랐다. (내 수준;;;)
로그에는 두 개의 매개변수가 사용된다. 두개의 파라미터라고도 한다.
Log.d( " 첫번째 파라미터", "두번째 파라미터" ) ;
위와 같은 형식으로 주로 로그를 남기는데,
1번째 파라미터는 태그 (고유한 값을 사용)
2번째 파라미터는 로그의 내용을 원하는 대로 담는다.
private static final String TAG = "MyActivity";
...
Log.i(TAG, "MyClass.getView() — get item number " + position);
Java로 봤을 때, 위와 같이 Tag는 상수 선언을 규칙으로 하는 것이 좋다고 한다. ( 모르겠으면 그냥 따라야 한다.)
그리고 해당 태그의 길이는 23자 까지라고 한다.
12-10 13:02:50.071 1901-4229/com.google.android.gms V/AuthZen: Handling delegate intent.
위의 로그를 보면,
12-10 13:02:50.071 : 날짜 시간을 나타낸다.
1901-4229 : 이부분은 두개의 숫자가 - 양쪽에 있다.
앞의 것은 PID (Process Identifier) 프로세스 식별자 이다.
- 다음의 것은 TID (Thread Identifier) 스레드 식별자 이다.
나중에 이러한 쓰레드 상의 문제를 알고 싶다면, 참고하면 좋을 듯하다. ( 스레드가 하나라면 두 ID값은 같다.)
자 이제 위의 다양한 로그 종류에 대해 자세히 알아본다.
긱 로그 종류들의 의미이다. Verbose가 항상 뭔가 했는데, 그냥 모든 로그를 다 표시하는 것이었다. D 자체가 왜 유용한지 좀더 감을 잡을 수 있는 부분이라고 생각한다.
여기서 좀더 유용한 정보를 얻을 수 있었다.
로그창 우측 상단에 항상(?) 있었던 단 한번도 손을 안댔던 선택라벨이 있다. 이것을 눌러보면 아래와 같은 옵션들이 있다. 가장 하단에 Edit 사용자 필터 설정을 사용해보면 심박하다.
위의 Edit버튼을 누르면 아래와 같은 화면이 뜬다.
여기서 내가 원하느 태그명을 적어두고, log level까지 설정해두면, 나중엔 내가 원하는 로그만 뜨게 설계할 수 있다.
(d를 쓰는게 났다)
'Tech > Tech' 카테고리의 다른 글
[Invision] ProtoType Design? (0) | 2020.10.29 |
---|---|
Kakao Oven Mock Up (0) | 2020.09.30 |
[Apple] Apple Watch 6 , SE (1) | 2020.09.16 |