expressjs 프로젝트를 만드는데, 로그가 안남아서 무슨 에러인지 확인이 어려웠다.
그래서 서칭을 하던중 morgan이라는 것을 알게되었다.
# 패키지 설치
$ npm install morgan
# typescript 사용시 아래 패키지도 설치
$ npm install @types/morgan
# app.ts에 세팅
나는 ECMAScript 모듈 스펙을 이용해서 패키지를 불러오겠다.
import morgan from 'morgan';
// log setting
// 로그 형식 정의
morgan.format('detailed', ':method :url :status :res[content-length] - :response-time ms :remote-addr - :remote-user :referrer :user-agent');
app.use(morgan('detailed'));
# morgan 패키지 설명
morgan(format, options)
내가 세팅한것처럼, format이란 모드를 선택하는 것이고, options는 위처럼 어떤걸 보여줄것이냐 설정하는 것이다.
# 포멧 종류
# 배포환경에서 사용
# ip를 남겨줌 + 표준 공통로그 출력
morgan('combined')
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"
# 표준 공통로그 출력
morgan('common')
:remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length]
# 개발용이라 색을 보여주는데, 색깔별로 어떤 status인지 보여줌
morgan('dev')
:method :url :status :response-time ms - :res[content-length]
# common보다 짧은 로그
morgan('short')
:remote-addr :remote-user :method :url HTTP/:http-version :status :res[content-length] - :response-time ms
# 제일 최소화된 로그
morgan('tiny')
:method :url :status :res[content-length] - :response-time ms
# 로그 결과
그럼 이처럼 에러 로그가 나온다.
참고
https://www.npmjs.com/package/morgan
https://inpa.tistory.com/entry/EXPRESS-%F0%9F%93%9A-morgan-%EB%AF%B8%EB%93%A4%EC%9B%A8%EC%96%B4
'JaveScript > ExpressJS' 카테고리의 다른 글
dayjs 사용해서 나이 계산하기 (0) | 2023.12.14 |
---|---|
ts-jenum으로 Enum객체 활용 (0) | 2023.12.13 |
expressjs + typeorm 0.3 세팅 후 사용법 (1) | 2023.12.12 |
ExpressJS 구조 파악하기. (0) | 2023.07.20 |
ExpressJS 프로젝트 세팅하기 (0) | 2023.07.18 |