콘텐츠로 이동

Node.js 운영 로그 (Winston) 설정 기준

운영 서버(Production Server) 환경에서 Node.js 애플리케이션의 로그를 예측 가능하고, 장기 추적 가능하게 관리하기 위한 Winston 기반 로그 설정 기준을 정리한 문서.

단순 사용 예제가 아니라, 운영 장애 분석 / 감사 / 장기 로그 보관을 전제로 함.


1. 기본 원칙

  • 운영 로그는 파일 기반으로 남겨야 함
  • 로그 레벨별로 분리 저장해야 함
  • 로그 파일은 일 단위 로테이션
  • 로그 디렉터리는 애플리케이션 Root 기준으로 고정

2. 설치 기준

⚠️ 주의
/var/www/[ProjectName]/current에서 직접 npm install 수행 ❌
의존성 설치는 반드시 /home/[User]/[ProjectName] 또는 동등한 작업 경로에서 수행 후 배포함

필수 패키지

npm install winston --save
npm install winston-daily-rotate-file --save
npm install app-root-path --save

패키지 역할

  • winston
    → Node.js 표준 로깅 라이브러리
  • winston-daily-rotate-file
    → 일 단위 로그 파일 로테이션
  • app-root-path
    → 실행 위치와 무관하게 프로젝트 루트 경로 확보

3. 로그 레벨 운영 기준

Level 용도
error 서비스 장애, 예외, 즉시 조치 필요
warn 잠재적 문제, 설정 이상
info 정상 흐름, 주요 이벤트
http 요청/응답 로깅
verbose 상세 흐름 추적
debug 디버깅용
silly 매우 상세한 개발/분석용

운영 서버에서는 debug, silly 로그 사용 시 로그 용량 증가에 주의


4. 운영 주의사항

  • 로그 디렉터리(logs/)는 PM2 실행 사용자 권한으로 생성되어야 함
  • 로그 파일은 배포 시 삭제하지 않음
  • 로그는 장애 분석의 1차 근거 자료임
  • 콘솔 로그는 임시 확인용이며 운영 로그로 간주하지 않음

5. 정리

  • Winston은 운영 로그 관리 도구
  • 로그는 남기는 것보다 관리하는 방식이 중요
  • 파일 분리 + 로테이션 + 환경 분기 없이는 운영 불가