[Node.js] morgan

유동균·2023년 2월 1일
0

Node.js

목록 보기
8/11
post-thumbnail
post-custom-banner

morgan

  • 로그를 남겨주는 모듈

Install

npm install morgan

Usage

## 기본형
app.use(morgan(format, options));

Format

  • format은 문자열이나 콜백함수를 넣어야 한다.
  • 직접 원하는 정보만을 넣어 커스텀 할때는 콜백함수를 넣어 토큰 값을 원하는 것들로 수정하면 된다.
  • 단지 로그를 찍기 위한 용도이면 문자열을 넣어 적용시키면 됨.

combined

  • 배포환경에서 사용
  • 불특정 다수가 접속하기 때문에 IP를 로그에 남겨줌
app.use(morgan(combined));
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"

common

app.use(morgan(combined));
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length]

dev

  • 개발용을 위해 response에 따라 색상이 입혀진 축약된 로그를 출력.
  • :status값이 빨간색이면 서버 에러코드, 노란색이면 클라이언트 에러 코드, 청록색은 리다이렉션 코드, 그외 코드는 컬러가 없다.
app.use(morgan(dev));
:method :url :status :response-time ms - :res[content-length]

short

  • 기본 설정보다 짧은 로그를 출력하고, 응답 시간을 포함.
:remote-addr :remote-user :method :url HTTP/:http-version :status :res[content-length] - :response-time ms

tiny

  • 최소화된 로그를 출력
:method :url :status :res[content-length] - :response-time ms

Option

immediate

  • response대신 request에 따라 로그를 작성한다.
  • 서버 크래시가 발생하여도 request들은 기록되지만, reponse(response code, 컨텐츠 길이 등등)의 데이터는 기록할 수 없기 때문에 사용한다.

skip

  • 로깅의 스킵여부를 결정하기 위한 함수이다.
  • 기본값은 false. 이 함수는 "skip(req, res)" 형식으로 호출된다.
morgan('combined', {
	// 코드가 400 미만라면 함수를 리턴해 버려서 로그 기록 안함.
	// 코드가 400 이상이면 로그 기록함
    skip : function(req, res) { return res.statusCode < 400 } 
});

stream

  • 로그 작성을 위한 Output stream옵션. 기본값은 process.stdout.
post-custom-banner

0개의 댓글