로그 보는 법 — 에러 원인 찾기
프로그램이 꺼지거나 이상하게 동작할 때, 원인은 거의 항상 로그에 적혀 있습니다. 실행 방법에 따라 로그를 보는 곳이 다르니, 내 프로그램을 어떻게 실행했는지에 맞춰 보세요.
로그 읽는 요령
- 맨 아래부터 봅니다. 가장 최근 기록이 아래에 있습니다.
Error,Exception,Traceback,failed,denied같은 단어를 찾습니다.- 에러가 여러 줄이라면 처음 나온 에러가 진짜 원인인 경우가 많습니다.
- 에러 문장을 그대로 복사해 검색하면 대부분 해결 방법이 나옵니다.
pm2로 실행한 프로그램 (Node.js 봇·앱)
pm2 logs my-bot # 실시간 로그 (Ctrl + C로 나가기)
pm2 logs my-bot --lines 200 # 최근 200줄
pm2 logs my-bot --err # 에러만
systemd로 실행한 프로그램 (Python 봇·앱 등)
journalctl -u my-bot -f # 실시간 로그
journalctl -u my-bot -n 100 --no-pager # 최근 100줄
journalctl -u my-bot --since "1 hour ago" # 최근 1시간
sudo systemctl status my-bot # 실행 상태와 마지막 로그 몇 줄
Docker 컨테이너
docker ps -a # 컨테이너 목록 (꺼진 것 포함, STATUS 확인)
docker logs --tail 100 이름 # 최근 100줄
docker logs -f 이름 # 실시간 로그
screen·tmux 안에서 실행한 프로그램
프로그램이 화면에 직접 출력하므로 창에 다시 들어가서 봅니다. (screen -r 이름, tmux attach -t 이름) 마인크래프트 서버는 서버 폴더의 logs/latest.log에도 기록됩니다.
tail -n 100 ~/minecraft/logs/latest.log
Nginx (웹사이트)
sudo tail -n 50 /var/log/nginx/error.log # 에러 (502, 권한 문제 등)
sudo tail -f /var/log/nginx/access.log # 실시간 접속 기록
시스템 전체
journalctl -p err -b --no-pager | tail -n 50 # 이번 부팅 이후의 에러
sudo dmesg | grep -i "out of memory" # 메모리 부족으로 강제 종료된 기록
journalctl --list-boots | tail -n 5 # 최근 재부팅 기록
메모리 부족 기록이 있다면 메모리가 부족할 때를 참고하세요.
Windows 서버
- 직접 실행한 프로그램은 콘솔 창에 출력되는 내용을 확인합니다. 창이 바로 닫혀서 못 본다면
.bat파일 마지막 줄에pause를 넣으세요. - 시스템 기록은 시작 메뉴 → 이벤트 뷰어 → Windows 로그 → 응용 프로그램 / 시스템에서 볼 수 있습니다.
문의할 때
기술지원에 문의할 때 로그의 에러 부분을 함께 보내주시면 훨씬 빨리 도와드릴 수 있습니다. 단, 로그에 토큰·비밀번호가 찍혀 있다면 지우고 보내주세요.