로그 분석 대시보드 사용 가이드
1. 이 도구는 무엇인가
adb logcat -v threadtime으로 저장한 Android 로그 파일(.log/.txt)을 브라우저에
불러오면, 그 안의 오류(E)·치명적 결함(F) 줄을 자동으로 찾아 태그별·파일별·시간대별로 정리해서
보여주는 로그 분석 전용 웹 대시보드입니다.
왜 필요한가
logcat을 실시간으로 붙잡아 보는 도구는 많지만, 이미 저장해 둔 로그 파일 하나(또는 여러 개)를 받아서 "어디서 오류가 얼마나 났는지"를 빠르게 훑어보려면 매번 텍스트 편집기로 직접 검색해야 하는 경우가 많습니다. 이 대시보드는 그 훑어보기 작업을 표·그래프로 자동화합니다.
핵심 특징
| 동작 방식 | 100% 브라우저 안에서 처리 (규칙 기반, 서버 없음) |
|---|---|
| 서버 전송 | 없음 — 불러온 로그 파일이 외부로 나가지 않습니다 |
| 대상 파일 | adb logcat -v threadtime 형식의 .log/.txt 파일 (여러 개 동시 업로드 가능) |
| 결함 판정 | 사용자 설정 없이 로그 레벨 E(오류)·F(치명)을 자동 집계 |
| 장애 패턴 | 크래시·ANR·네이티브 크래시·lmkd 강제 종료 등 11종을 레벨과 무관하게 감지 (패턴 사전) |
| 반복 오류 | 숫자·주소만 다른 오류를 한 묶음으로 정리 |
2. 화면 구성
상단바(테마 전환·사용법) 아래로 로그 파일 업로드 영역, 파일 필터, 통계 타일, 감지된 장애 패턴, 그래프(오류 태그별/파일별 건수, 일별 결함 발생 추이), 불러온 파일 표, 반복 오류 묶음 표, 검색 가능한 결함 상세 표 순서로 배치돼 있습니다.
3. 사용 순서
3-1. 로그 파일 불러오기
업로드 영역에 .log/.txt 파일을 클릭하거나 드래그해서 놓으면 됩니다.
여러 파일을 한 번에 올릴 수 있습니다.
- 같은 이름의 파일을 다시 올리면 기존 내용을 새 내용으로 덮어씁니다.
- 처음 써 보신다면 "예시 데이터로 미리보기" 버튼으로 화면 구성부터 확인해 보세요 (예시 데이터는 실제 수집 결과가 아닌 합성 데이터입니다).
3-2. 파일 필터
상단 필터 행의 드롭다운에서 특정 파일을 고르면 통계 타일·그래프·표 전부가 그 파일 기준으로 다시 계산됩니다. "전체 파일"로 되돌리면 전부 초기화됩니다.
3-3. 감지된 장애 패턴 보기
파일을 불러오면 가장 먼저 이 카드를 보세요. 심각도(치명·주의·참고) 순으로 패턴 이름, 건수, 대상(앱·프로세스 이름), 처음과 마지막 시각이 나옵니다. 패턴 이름을 누르면 패턴 사전의 해당 항목으로, "첫 기록 원문"을 누르면 그 패턴의 첫 번째 기록 원문으로 이동합니다.
- 메모리 부족 강제 종료(lmkd)와 프로세스 종료 기록은 I 레벨이라 결함 건수에는 들어가지 않고 이 카드에만 나옵니다.
- 한 기록은 하나의 패턴에만 속합니다. 예를 들어 처리되지 않은 OutOfMemoryError는 같은 시각의 앱 크래시와 함께 보세요.
3-4. 그래프 읽는 법
- 오류 태그별 / 파일별 건수 — 막대가 길수록 건수가 많습니다. 막대에 마우스를 올리면(또는 Tab으로 포커스하면) 정확한 수치가 툴팁으로 나옵니다. 항목이 8개를 넘으면 상위 항목만 보여주고 나머지는 "기타"로 묶입니다 — 전체 목록은 아래 표에서 확인하세요.
- 일별 결함 발생 추이 — 하루 단위로 오류(파란색)와 치명(주황색) 결함 건수를 쌓아 보여줍니다. 막대에 마우스를 올리면 그날의 레벨별 건수와 합계가 나옵니다.
3-5. 반복 오류 묶음
메시지 첫 줄에서 숫자와 메모리 주소를 지운 문장이 같은 오류를 한 줄로 묶어 건수·처음·마지막 시각·파일 수를 보여 줍니다. 상위 50종까지 표시합니다. 여러 파일(기기)에 걸친 묶음은 공통 원인(서버, 예약 작업)을 의심할 단서입니다.
3-6. 표에서 찾기
- 표 머리글을 클릭하면 그 열 기준으로 정렬됩니다(다시 클릭하면 오름/내림 전환).
- 결함 상세 표는 오른쪽 검색창으로 태그·메시지·파일명을 한 번에 검색할 수 있습니다.
- "원문 보기" 버튼을 누르면 그 결함의 태그·PID/TID·원문 로그(여러 줄 스택트레이스가 있으면 전체)가 팝업으로 나옵니다.
4. 지원 로그 형식
adb logcat -v threadtime의 기본 출력 형식을 그대로 따릅니다.
| 형식 | 예시 | 비고 |
|---|---|---|
| 연도 없음 (기본) | 08-23 10:15:32.123 1234 1256 E ActivityManager: message | 연도는 오늘 날짜 기준으로 채워집니다 |
| 연도 있음 | 2026-08-23 10:15:32.123 1234 1256 E ActivityManager: message | -v year 등으로 연도가 붙은 경우 |
레벨 문자는 V(Verbose)·D(Debug)·I(Info)·W(Warning)·
E(Error)·F(Fatal)·S(Silent)를 인식하며, 이 중 E·F만
"결함"으로 집계합니다. 위 형식에 맞지 않는 줄(자바 예외 스택트레이스처럼 접두사 없이 이어지는
줄)은 새 항목으로 취급하지 않고 바로 위 항목의 원문에 이어 붙입니다.
또 시각·PID·TID·레벨·태그가 모두 같은 연속된 줄은 한 번에 남긴 여러 줄 메시지로 보고 한 건으로 합칩니다.
그래서 "로그 기록 수"는 원본 줄 수보다 적을 수 있습니다(원본 줄 수는 불러온 파일 표의 "총 라인"에 있습니다).
5. 알려진 한계
- 실시간 수집 기능 없음. 이 대시보드는 이미 저장된 로그 파일을 읽어 분석만
합니다. 로그 수집(
adb logcat실행) 자체는 별도로 해야 합니다. - 탭을 닫거나 새로고침하면 불러온 데이터가 사라집니다. 서버에 저장하지 않기 때문입니다. 다시 열려면 로그 파일을 다시 불러와야 합니다.
adb logcat -v threadtime이외의 형식(brief, tag, raw 등)은 인식하지 못합니다. 로그를 저장할 때 반드시-v threadtime옵션을 사용하세요.- 연도가 없는 형식은 오늘 날짜의 연도로 계산합니다 — 연말·연초 경계에 걸친 로그는 날짜가 어긋날 수 있습니다.