> 웹 프론트엔드 > CSS 튜토리얼 > Pino-Logger를 사용하여 Node.js 응용 프로그램에서 로깅을 구현하는 방법

Pino-Logger를 사용하여 Node.js 응용 프로그램에서 로깅을 구현하는 방법

尊渡假赌尊渡假赌尊渡假赌
풀어 주다: 2025-03-19 09:52:11
원래의
121명이 탐색했습니다.

Pino-Logger를 사용하여 Node.js 응용 프로그램에서 로깅을 구현하는 방법

효과적인 로깅은 응용 프로그램 개발에 중요합니다. 응용 프로그램 동작에 대한 통찰력을 제공하고 디버깅을 단순화합니다. 이 튜토리얼은 성능과 유연성으로 알려진 인기있는 선택 인 Pino Logger를 사용하여 Node.js 응용 프로그램에서 로깅을 구현하는 방법을 보여줍니다.

Pino는 응용 프로그램 흐름에 대한 자세한 정보와 별도의 파일에 로그를 저장하는 기능을 포함하여 포괄적 인 로깅을 허용합니다. 광범위한 Github 커뮤니티는 신뢰성을 더욱 강조합니다.

이 안내서는 다음과 같습니다.

  • 로깅 레벨 구성.
  • JSON 응답 포함 옵션을 포함하여 터미널의 가독성 향상을 위해 로그 출력을 사용자 정의합니다.
  • 로그를 전용 파일로 저장합니다.

결국, 모범 사례 및 PINO를 사용하여 Node.js 응용 프로그램에서 강력한 로깅을 구현할 수 있습니다.

전제 조건

진행하기 전에 다음과 같이 확인하십시오.

  • 서버 측 개발을위한 Express.js 경험.
  • 인증없이 REST API를 구축하는 데 익숙합니다.
  • 코드 편집기의 명령 줄 도구 또는 통합 터미널의 숙련도.

API 엔드 포인트 테스트 용 Postman과 같은 도구를 사용하는 것이 좋습니다.

1 단계 : 프로젝트 설정

이 단계에는 Express.js 및 Mongoose를 사용하여 기본 Node.js CRUD 응용 프로그램을 작성하는 것이 포함됩니다. 이 접근법은 로깅 기능이 현실적인 응용 프로그램 컨텍스트 내에서 구현되도록합니다.

CRUD 응용 프로그램 설정의 경우 Mongoose 및 Mongodb Atlas와의 CRUD 작업 수행에 대한 튜토리얼을 참조하십시오. 완료되면 루트를 작성, 읽기, 업데이트 및 삭제하는 Node.js 응용 프로그램이 있습니다.

코드 변경시 자동 서버 재시작에 대한 nodemon 설치 :

 npm install -g -포스 노드 몬
로그인 후 복사

-g 플래그는 전 세계적으로 설치되며 --force 잠재적 충돌을 처리합니다.

2 단계 : Pino 설치

필요한 종속성을 설치하십시오 : Pino, Express-Pino-Logger 및 Pino-Pretty :

 NPM 설치 Pino Express-Pino-Logger Pino-Pretty
로그인 후 복사

3 단계 : 로거 서비스 생성

다양한 로그 레벨 (경고, 오류, 정보 등)이있는 Pino Logger 서비스를 만듭니다. 이 서비스는 Node.js Middleware를 사용하여 응용 프로그램에 통합됩니다.

services 디렉토리 작성 :

 mkdir 서비스
로그인 후 복사

다음 코드로 loggerService.js 내부 services 작성하십시오.

 const pino = 요구 사항 ( 'Pino');
module.exports = pino ({prettyprint : true});
로그인 후 복사

이것은 인쇄 된 출력이있는 기본 로거를 만듭니다. 이후 단계는 추가 구성을 다룹니다.

다음으로 server.js 파일에서 Logger Service 및 express-pino-logger 가져옵니다.

 const expresspinologger = 요구 사항 ( 'Express-Pino-Logger');
const logger = require ( './ services/loggerservice');
로그인 후 복사

로거 서비스로 express-pino-logger 구성하십시오.

 // ...
const loggermiddleware = ExpressPinologger ({
  로거 : 로거,
  자동화 : 사실,
});

app.use (loggermiddleware);
// ...
로그인 후 복사

autoLogging: true 에는 로그의 JSON 응답이 포함됩니다.

경로 처리기 (예 : foodRoutes.js )에서 로거를 가져오고 사용합니다.

 const logger = require ( '../ services/loggerservice');

// ...
app.get ( "/food", async (요청, 응답) => {
  logger.info ( '경로 액세스하기');
  // ...
});
// ...
로그인 후 복사

서버 ( nodemon server.js )를 다시 시작하고 API 엔드 포인트를 테스트하십시오. 로그 출력이 터미널에 나타납니다.

4 단계 : 로그 구성

이 단계는 로거 서비스를 사용자 정의하고 로그 가독성 향상에 중점을 둡니다.

사용자 정의 로그 레벨

loggerService.js 에서 사용자 정의 로그 레벨 정의 :

 // ...
const 레벨 = {
  HTTP : 10,
  디버그 : 20,
  정보 : 30,
  경고 : 40,
  오류 : 50,
  치명적 : 60,
};
// ...
로그인 후 복사

loggerService.js 에서 pino 구성을 업데이트하십시오.

 module.exports = pino ({{
  PrettyPrint : 사실,
  CustomLevels : 레벨,
  useonlyCustomLevels : true,
  레벨 : 'http',
});
로그인 후 복사

사용자 정의 레벨 (예 : logger.http(...) )로 테스트합니다. JSON 응답이 불필요한 경우 autoLogging: false server.js 의 False 설정.

예쁜 인쇄

loggerService.js 에서 로그 형식 향상 :

 module.exports = pino ({{
  CustomLevels : 레벨,
  useonlyCustomLevels : true,
  레벨 : 'http',
  PrettyPrint : {
    Colorize : True,
    levelfirst : 사실,
    TranslateTime : 'yyyy-dd-mm, h : mm : ss tt',
  },
});
로그인 후 복사

개선 된 로그 출력을 보려면 다시 테스트하십시오.

5 단계 : 로그를 파일에 저장합니다

파일에 로그를 작성하려면 loggerService.js 에서 pino 구성을 수정하십시오.

 module.exports = pino ({{
  CustomLevels : 레벨,
  useonlyCustomLevels : true,
  레벨 : 'http',
  PrettyPrint : {
    Colorize : True,
    levelfirst : 사실,
    TranslateTime : 'yyyy-dd-mm, h : mm : ss tt',
  },
}, pino.destination (`$ {__ dirname}/logger.log`));
로그인 후 복사

API를 테스트하십시오. 로그는 이제 services 디렉토리의 logger.log 에 기록됩니다.

결론

이 튜토리얼은 Node.js 응용 프로그램에서 Pino 로깅 구현에 대한 포괄적 인 안내서를 제공했습니다. 모범 사례를 기억하십시오 : 상황 정보, 명확한 목적 및 읽기 가능한 형식은 효과적인 로깅의 핵심입니다. 고급 구성 옵션에 대한 공식 Pino 문서를 살펴보십시오.

위 내용은 Pino-Logger를 사용하여 Node.js 응용 프로그램에서 로깅을 구현하는 방법의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

본 웹사이트의 성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.
인기 튜토리얼
더>
최신 다운로드
더>
웹 효과
웹사이트 소스 코드
웹사이트 자료
프론트엔드 템플릿