[Node][Express] Middleware | 02. morgan

2024. 8. 20. 13:21·Backend/Node.js

패키지 설치가 필요한 미들웨어 입니다.

https://github.com/expressjs/morgan?tab=readme-ov-file#predefined-formats

 

GitHub - expressjs/morgan: HTTP request logger middleware for node.js

HTTP request logger middleware for node.js. Contribute to expressjs/morgan development by creating an account on GitHub.

github.com

 

morgan은 서버로 들어온 요청을 로그 보기 쉽게 남겨주는 미들웨어입니다.

인자로는 '로그를 얼마나 자세하게 기록할 것인지'를 넘겨줄 수 있습니다.

이는 tiny, short와 같은 예약어를 사용해도 되고, 사용자가 직접 어떤 항목을 기록할 것인지 선택할 수도 있습니다.

import express from 'express'
import morgan from 'morgan'

const app = express()

app.use(morgan('tiny')) // tiny : 최소한의 정보만 기록합니다.

app.get('/hello', (req, res) => {
  return res.json({ message: 'get method called' })
})

app.listen(3000, () => {
  console.log('Server is listening on port 3000')
})

다음과 같이 요청을 보내면, 콘솔창에서 로그를 확인할 수 있습니다.

GET http://localhost:3000/hello

//출력값
GET /hello 200 34 - 2.595 ms

예약어(Predefined Formats) 모음

예약어 정의된 형식
combined :remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length] ":referrer" ":user-agent"
common :remote-addr - :remote-user [:date[clf]] ":method :url HTTP/:http-version" :status :res[content-length]
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

각 형식 요소(Tokens) 모음

이름 요소
:http-version 요청의 http 버전
:method 요청의 http 메소드 (get, post 등)
:referrer 요청의 Referrer 헤더 (혹은 Referer 헤더)
:remote-addr 요청의 원격 주소 (req.ip 또는 req.connection.remoteAddress)
:remote-user 인증된 사용자
:req[header] 요청의 [header] 헤더 (없다면 "-")
:res[header] 응답의 [header] 헤더 (없다면 "-")
:response-time[digits] 요청이 morgan에 도달했을 때 부터 응답의 헤더가 기록될 때 까지의 시간(ms)
digits은 표시할 자리 수(default: 3)
:status 응답의 상태코드(200, 404 등)
:total-time[digits] 요청이 morgan에 도달했을 때 부터 응답이 기록될 때 까지의 시간(ms)
digits은 표시할 자리 수(default: 3)
:url 요청 url (req.originalUrl 또는 req.url)
:user-agent 요청에서 User-Agent 헤더의 값

 

728x90

'Backend > Node.js' 카테고리의 다른 글

[Node][Express] Middleware | 03. multer  (0) 2024.08.20
[Node][Express] route & Router 메소드  (0) 2024.08.19
[Node][Express] Middleware | 01. cookie-parser  (0) 2024.08.19
[Node][Express] 내장 미들웨어 json() / urlencoded() / static()  (0) 2024.08.18
[Node][Express] all & use 메소드  (0) 2024.08.16
'Backend/Node.js' 카테고리의 다른 글
  • [Node][Express] Middleware | 03. multer
  • [Node][Express] route & Router 메소드
  • [Node][Express] Middleware | 01. cookie-parser
  • [Node][Express] 내장 미들웨어 json() / urlencoded() / static()
Rayi
Rayi
  • Rayi
    아카이브
    Rayi
  • 전체
    오늘
    어제
    • 분류 전체보기 (262)
      • CS (40)
        • ML (3)
        • CV (2)
        • PS (34)
      • Reveiw (17)
        • Paper (17)
        • Github (0)
      • Pytorch (5)
      • Language (58)
        • Python (7)
        • JavaScript (32)
        • TypeScript (16)
        • C++ (3)
      • IDE (12)
      • Git (13)
      • Frontend (71)
        • React (8)
        • SolidJS (20)
        • CSS (12)
      • UI (3)
      • Backend (15)
        • DB (17)
        • Node.js (11)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

    ts
    nodejs
    Three
    ps
    ML
    Express
    postgresql
    mongo
    vscode
    CSS
    figma
    python
    html
    backend
    DB
    review
    CV
    react
    SOLID
    frontend
    API
    UI
    C++
    PyTorch
    PRISMA
    Git
    js
    CS
    GAN
    deploy
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.5
Rayi
[Node][Express] Middleware | 02. morgan
상단으로

티스토리툴바