Web
NodeJS 분류

morgan 라이브러리로 HTTP 요청 로그 기록하기

작성자 정보

  • 스카이넷마스터 작성
  • 작성일

컨텐츠 정보

본문

안녕하세요, 여러분! 


이번에는 Node.js 애플리케이션에서 HTTP 요청 로그를 기록하는데 도움을 주는 'morgan' 라이브러리에 대해 알아보려고 합니다. 

'morgan'은 미들웨어로서 HTTP 요청에 대한 로그를 쉽게 남길 수 있게 해줍니다.


1. morgan이란?

'morgan'은 Node.js 애플리케이션에서 HTTP 요청에 대한 로그를 기록하는 데 사용되는 미들웨어입니다. 

Express와 함께 사용되어 요청에 대한 정보를 콘솔이나 파일에 남길 수 있습니다.


2. 설치와 사용

먼저, 'morgan'을 설치해봅시다. 

npm을 이용하여 간단하게 설치할 수 있습니다.




npm install morgan


다음은 'morgan'을 사용하여 로그를 기록하는 예제 코드입니다.




const express = require('express');

const morgan = require('morgan');




const app = express();




// 'combined' 포맷의 로그를 출력하는 미들웨어 추가

app.use(morgan('combined'));




// 라우트 예제

app.get('/', (req, res) => {

  res.send('안녕하세요! Express 앱에 오신 것을 환영합니다.');

});




// 서버 실행

const PORT = 3000;

app.listen(PORT, () => {

  console.log(`서버가 http://localhost:${PORT} 에서 실행 중입니다.`);

});


3. morgan 옵션

'morgan'은 다양한 포맷과 옵션을 지원합니다. 

특히, 개발 환경과 프로덕션 환경에서 다른 포맷을 사용하는 것이 일반적입니다. 

실제 프로젝트에서는 'common' 포맷이나 사용자 정의 포맷을 고려하여 설정할 수 있습니다.

몇 가지 예제를 살펴보겠습니다.


'combined': 기본값. 표준 Apache combined 로그 포맷.

'common': 표준 Apache common 로그 포맷.

'dev': 개발 환경에 적합한 간결한 로그 포맷.

'short': 축약된 로그 포맷.

'tiny': 매우 간결한 로그 포맷.


4. 프로젝트에서의 활용

개발 환경에서 디버깅: 'dev' 포맷을 사용하여 개발 중에는 더 자세한 정보를 로그에 남길 수 있습니다.

프로덕션 환경에서 최소한의 정보 기록: 'common' 포맷을 사용하여 필요한 최소한의 정보만을 로그에 남깁니다.

로그 파일 저장: 'morgan'을 이용하여 로그를 파일에 저장하여 나중에 분석할 수 있도록 합니다.


5. 왜 morgan을 사용해야 할까요?

HTTP 요청 로그 기록: 요청에 대한 다양한 정보를 로그에 남길 수 있습니다.

다양한 로그 포맷: 필요에 따라 로그 포맷을 선택하여 사용할 수 있습니다.

미들웨어로 간편한 통합: Express 애플리케이션에서 간단하게 사용할 수 있는 미들웨어로 제공됩니다.


'morgan' 라이브러리를 사용하면 Node.js 애플리케이션에서 HTTP 요청 로그를 손쉽게 기록할 수 있습니다. 

여러분도 이 라이브러리를 활용하여 애플리케이션의 동작을 모니터링해보세요!


더 자세한 내용은 공식 GitHub 저장소에서 확인할 수 있습니다. 

감사합니다!

관련자료

댓글 0
등록된 댓글이 없습니다.
전체 40 / 1 페이지
RSS
  • 웹개발에 자주 쓰는 자바스크립트 라이브러리들 - 슬라이…
    등록자 tjslli
    등록일 05.08 조회 1709

    Html 슬라이드/갤러리 (Carousel) 01. 가장 유명한 Slick - https://kenwheeler.github.io/slick/ 설치 &l…

  • [CSS]css 가상 선택자 정리 및 비교 (nth-c…
    등록자 CSS러버
    등록일 05.08 조회 1625

    Html :nth-child(N)= 부모안에 모든 요소 중 N번째 요소 A:nth-of-type(N)= 부모안에 A라는 요소 중 N번째 요소 :first…

  • 스크롤 이벤트 감지 + jquery + css
    등록자 webveloper
    등록일 04.15 조회 1738

    Html 1. css .caritem{display:flex;align-items:end;flex-direction:column;background:#0…

  • slick slider 커스텀으로 꾸미기 + jquer…
    등록자 webveloper
    등록일 04.15 조회 1775

    Html 1. import <link rel="stylesheet" type="text/css" href="https://cdn.jsdelivr.n…

  • 호버(hover) 할 때 jquery 이벤트 감지 방법
    등록자 webveloper
    등록일 04.15 조회 1787

    Html 안녕하세요. html 코딩 시 hover 할때 감지하는 이벤트 스크립트입니다. <style> .con-group { display: …

  • 그누보드 썸네일 이미지 화질 개선 방법
    등록자 PixelProphet
    등록일 01.10 조회 2735

    Php 그누보드에서 이미지를 올릴때, 간혹 이미지 화질이 떨어져 보이는 현상이 있습니다.... 이럴 때 제가 찾아본 방법 중에 가장 쉽게 해결 할 수 …

  • React 유튜브 채널 추천
    등록자 코드워리어
    등록일 01.09 조회 2200

    React React는 웹 개발에서 매우 인기 있는 라이브러리로, 학습을 위해 다양한 자료들이 필요합니다. React를 학습하고 싶은 분들을 위한 유튜버 …

  • PHP 배열의 기초
    등록자 console
    등록일 01.05 조회 2530

    Php 배열(array)이란? PHP에서 배열(array)은 맵(map)으로 이루어진, 순서가 있는 집합을 의미합니다. 맵(map)은한 쌍의 키(key…

  • PHP 기타 제어문
    등록자 console
    등록일 01.05 조회 2561

    Php 루프의 제어 일반적으로 조건식의 검사를 통해 루프로 진입하면,다음 조건식을검사하기 전까지 루프 안에 있는 모든 명령문을 실행합니다. 사용자는 c…

  • PHP 반복문
    등록자 console
    등록일 01.05 조회 2532

    Php 반복문 반복문이란 프로그램 내에서 같은 명령을 일정 횟수만큼 반복하여수행하는명령문입니다. 프로그램이 처리하는 대부분의코드는 반복적인 형태가 많으…

  • PHP 조건문
    등록자 console
    등록일 01.05 조회 2382

    Php PHP 표현식 표현식(expressions)은 PHP에서 가장 중요한 구성요소입니다. 표현식이란 모든 것이 값을 갖는다는 의미이며, PHP에서 …

  • PHP 기타 연산자
    등록자 console
    등록일 01.05 조회 2348

    Php 삼항 연산자(ternaryoperator) 삼항 연산자는 유일하게 피연산자를 세 개나 가지는 조건 연산자입니다. 삼항 연산자의 문법은 다음과 같…

  • PHP 비트 연산자
    등록자 console
    등록일 01.05 조회 2557

    Php 비트 연산자(bitwise operator) 비트 연산자는 논리 연산자와 비슷하지만, 비트(bit) 단위로 논리 연산을 수행합니다. 또한, 비트…

  • PHP 논리 연산자
    등록자 console
    등록일 01.05 조회 2614

    Php 논리 연산자(logical operator) 논리 연산자는 논리식을 판단하여, 참(true)과 거짓(false)을 반환합니다. and, or, …

  • PHP 비교 연산자
    등록자 console
    등록일 01.05 조회 2636

    Php 비교 연산자(comparisonoperator) 비교 연산자는피연산자사이의 상대적인 크기를 판단하여,참(true)과 거짓(false)을 반환합니…