morgan
Install
npm install morgan
Usage
## 기본형
app.use(morgan(format, options));
- 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
- response대신 request에 따라 로그를 작성한다.
- 서버 크래시가 발생하여도 request들은 기록되지만, reponse(response code, 컨텐츠 길이 등등)의 데이터는 기록할 수 없기 때문에 사용한다.
skip
- 로깅의 스킵여부를 결정하기 위한 함수이다.
- 기본값은 false. 이 함수는 "skip(req, res)" 형식으로 호출된다.
morgan('combined', {
skip : function(req, res) { return res.statusCode < 400 }
});
stream
- 로그 작성을 위한 Output stream옵션. 기본값은 process.stdout.