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 중국어 웹사이트의 기타 관련 기사를 참조하세요!

핫 AI 도구

Undresser.AI Undress
사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover
사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool
무료로 이미지를 벗다

Clothoff.io
AI 옷 제거제

Video Face Swap
완전히 무료인 AI 얼굴 교환 도구를 사용하여 모든 비디오의 얼굴을 쉽게 바꾸세요!

인기 기사

뜨거운 도구

메모장++7.3.1
사용하기 쉬운 무료 코드 편집기

SublimeText3 중국어 버전
중국어 버전, 사용하기 매우 쉽습니다.

스튜디오 13.0.1 보내기
강력한 PHP 통합 개발 환경

드림위버 CS6
시각적 웹 개발 도구

SublimeText3 Mac 버전
신 수준의 코드 편집 소프트웨어(SublimeText3)

다른 날, 나는 Corey Ginnivan의 웹 사이트에서 스크롤 할 때 카드 모음이 서로 쌓이는 것을 발견했습니다.

Google Fonts가 새로운 디자인 (트윗)을 출시 한 것을 볼 수 있습니다. 마지막 큰 재 설계와 비교할 때 이것은 훨씬 더 반복적 인 느낌이 듭니다. 차이를 간신히 말할 수 있습니다

프로젝트에 카운트 다운 타이머가 필요한 적이 있습니까? 그런 것은 플러그인에 도달하는 것이 당연하지만 실제로는 훨씬 더 많습니다.

플렉스 레이아웃의 보라색 슬래시 영역에 대한 질문 플렉스 레이아웃을 사용할 때 개발자 도구 (d ...)와 같은 혼란스러운 현상이 발생할 수 있습니다.

요소 수가 고정되지 않은 경우 CSS를 통해 지정된 클래스 이름의 첫 번째 자식 요소를 선택하는 방법. HTML 구조를 처리 할 때 종종 다른 요소를 만듭니다 ...

새로운 프로젝트가 시작될 때, Sass 컴파일은 눈을 깜박이게합니다. 특히 BrowserSync와 짝을 이루는 경우 기분이 좋습니다.

프론트 엔드 개발에서 Windows와 같은 구현 방법 ...
