효과적인 로깅은 응용 프로그램 개발에 중요합니다. 응용 프로그램 동작에 대한 통찰력을 제공하고 디버깅을 단순화합니다. 이 튜토리얼은 성능과 유연성으로 알려진 인기있는 선택 인 Pino Logger를 사용하여 Node.js 응용 프로그램에서 로깅을 구현하는 방법을 보여줍니다.
Pino는 응용 프로그램 흐름에 대한 자세한 정보와 별도의 파일에 로그를 저장하는 기능을 포함하여 포괄적 인 로깅을 허용합니다. 광범위한 Github 커뮤니티는 신뢰성을 더욱 강조합니다.
이 안내서는 다음과 같습니다.
결국, 모범 사례 및 PINO를 사용하여 Node.js 응용 프로그램에서 강력한 로깅을 구현할 수 있습니다.
진행하기 전에 다음과 같이 확인하십시오.
API 엔드 포인트 테스트 용 Postman과 같은 도구를 사용하는 것이 좋습니다.
이 단계에는 Express.js 및 Mongoose를 사용하여 기본 Node.js CRUD 응용 프로그램을 작성하는 것이 포함됩니다. 이 접근법은 로깅 기능이 현실적인 응용 프로그램 컨텍스트 내에서 구현되도록합니다.
CRUD 응용 프로그램 설정의 경우 Mongoose 및 Mongodb Atlas와의 CRUD 작업 수행에 대한 튜토리얼을 참조하십시오. 완료되면 루트를 작성, 읽기, 업데이트 및 삭제하는 Node.js 응용 프로그램이 있습니다.
코드 변경시 자동 서버 재시작에 대한 nodemon
설치 :
npm install -g -포스 노드 몬
-g
플래그는 전 세계적으로 설치되며 --force
잠재적 충돌을 처리합니다.
필요한 종속성을 설치하십시오 : Pino, Express-Pino-Logger 및 Pino-Pretty :
NPM 설치 Pino Express-Pino-Logger Pino-Pretty
다양한 로그 레벨 (경고, 오류, 정보 등)이있는 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 엔드 포인트를 테스트하십시오. 로그 출력이 터미널에 나타납니다.
이 단계는 로거 서비스를 사용자 정의하고 로그 가독성 향상에 중점을 둡니다.
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', }, });
개선 된 로그 출력을 보려면 다시 테스트하십시오.
파일에 로그를 작성하려면 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 중국어 웹사이트의 기타 관련 기사를 참조하세요!