서버 로그 분석 방법 총정리 (초보부터 실무까지)
개발을 하다 보면 반드시 마주치는 순간이 있습니다.
“왜 안 되지?”
이때 가장 먼저 확인해야 할 것은 바로 서버 로그(Server Log) 입니다.
로그를 제대로 읽을 줄 알면 디버깅 속도가 10배 이상 빨라집니다.
오늘은 초보자부터 실무 개발자까지 활용 가능한 서버 로그 분석 방법을 정리해보겠습니다.
📌 서버 로그란 무엇인가?
서버 로그는 쉽게 말해,
서버에서 발생한 모든 이벤트를 기록한 데이터
입니다.
대표적으로 다음과 같은 정보가 포함됩니다.
- 요청(Request) 정보
- 응답(Response) 상태
- 에러 메시지
- 사용자 IP
- 처리 시간
📂 서버 로그 종류 (이거 모르면 분석 안 됩니다)
로그는 종류별로 역할이 다릅니다.
1️⃣ Access Log
- 사용자의 요청 기록
- URL, IP, 상태코드 확인 가능
👉 언제 보냐?
- 트래픽 분석
- 특정 API 호출 확인
2️⃣ Error Log
- 서버에서 발생한 에러 기록
👉 언제 보냐?
- 500 에러
- NullPointerException
- DB 연결 실패
3️⃣ Application Log
- 개발자가 직접 남긴 로그
👉 언제 보냐?
- 비즈니스 로직 흐름 확인
- 값 검증
🔍 서버 로그 분석 기본 흐름 (실무 핵심)
실무에서는 아래 순서대로 보면 됩니다.
✔ 1단계: 에러 로그 먼저 확인
ERROR / Exception 키워드 검색👉 핵심:
문제의 원인(root cause)은 거의 여기 있음
✔ 2단계: 시간 기준으로 추적
문제 발생 시간 기준으로 앞뒤 로그 확인👉 핵심:
- 에러는 결과일 뿐
- 그 전에 무슨 일이 있었는지가 중요
✔ 3단계: 요청 흐름 따라가기
Access Log → Application Log → Error Log👉 핵심:
- 하나의 요청 흐름으로 묶어서 봐야 함
✔ 4단계: 키워드 필터링
grep, find, 검색 활용예시:
grep "ERROR" server.log
grep "NullPointerException" server.log
⚡ 실무에서 많이 쓰는 로그 분석 명령어
리눅스 환경 기준입니다.
🔹 특정 키워드 검색
grep "ERROR" server.log
🔹 실시간 로그 보기
tail -f server.log
👉 운영 서버에서 필수
🔹 특정 시간대 로그 보기
sed -n '1000,1200p' server.log
🔹 여러 키워드 동시에 검색
grep -E "ERROR|Exception" server.log
🚨 로그 분석이 어려운 이유 (공감 포인트)
많은 개발자들이 처음에 이렇게 말합니다.
“로그가 너무 많아서 뭐가 문제인지 모르겠어요…”
그 이유는 딱 3가지입니다.
- 로그를 “흐름”으로 보지 않음
- 에러만 보고 원인을 안 봄
- 불필요한 로그에 집중함
💡 로그 분석 잘하는 사람 특징
실무에서 잘하는 사람은 이렇게 합니다.
- 에러 발생 "이전 로그"를 본다
- 로그를 "시간 순"으로 본다
- 문제를 "가설 → 검증"으로 접근한다
🔧 로그 잘 남기는 방법 (이게 더 중요)
사실 분석보다 더 중요한 건 로그 설계입니다.
좋은 로그는 아래 조건을 만족합니다.
✔ 반드시 포함해야 할 것
- 요청 ID (traceId)
- 사용자 정보
- 주요 파라미터 값
- 처리 시간
✔ 예시 (좋은 로그)
[INFO] [traceId=abc123] userId=lee API=/login status=200 time=120ms
👉 이런 로그가 있어야 추적이 가능함
📈 로그 분석 도구 추천
실무에서는 도구도 많이 사용합니다.
- ELK Stack (Elasticsearch, Logstash, Kibana)
- Grafana + Loki
- CloudWatch (AWS)
👉 규모가 커질수록 필수입니다.
✅ 정리
서버 로그 분석은 단순히 로그를 보는 것이 아니라,
"문제의 흐름을 추적하는 과정"
입니다.
핵심만 다시 정리하면:
- 에러 로그부터 본다
- 시간 흐름으로 분석한다
- 요청 단위로 추적한다
- 로그를 잘 남기는 것이 더 중요하다
🔥 마무리
개발 실력이 늘었다는 느낌이 드는 순간은
프레임워크를 잘 쓸 때가 아니라,
로그만 보고 문제를 찾아낼 수 있을 때 입니다.
오늘부터라도 로그를 "읽는 습관"을 만들어보세요.
분명히 개발 속도가 달라집니다.
'개발 > was' 카테고리의 다른 글
| 톰캣, 이클립스에서 별도 파일 경로 지정 (0) | 2020.03.02 |
|---|---|
| CentOS 7(리눅스) 방화벽 조회 및 추가 (0) | 2019.04.23 |
| 이클립스 톰캣 추가 안될떄 (0) | 2018.07.13 |
| 이클립스 톰캣 Server Tomcat v8.0 Server at localhost was unable to start within 45 seconds. (0) | 2018.07.03 |
| (리눅스, 윈도우)톰캣 server.xml 설정_ 소스올리기 (0) | 2018.06.19 |
| 이클립스 java.lang.OutOfMemoryError: Java heap space (0) | 2018.05.23 |
| 리눅스 환경에서 톰캣 하나 더 띄우기(멀티톰캣, 톱캣2개) (2) | 2017.11.28 |