Node.js에서 로깅을 구현하는 방법

Node Jseseo Loging Eul Guhyeonhaneun Bangbeob



벌채 반출 node.js에서 ”는 웹사이트 개발 절차의 전체 라이프사이클을 유지하는 데 중요한 역할을 합니다. 로깅은 개발자가 수시로 코드 기능을 분석하여 데이터를 분석하고, 코드 분석을 기반으로 오류를 해결하기 위해 수행하는 가장 일반적인 기능입니다.

이 글은 아래 나열된 내용을 설명합니다.

node.js에 언제 로그인해야 하나요?

다음은 node.js의 일반적인 로깅 수준입니다.







  • 정보: 간소화된 코드 실행을 확인하는 작업 또는 출력입니다.
  • 경고하다: 실패를 피하기 위해 고려해야 할 이벤트.
  • 오류: 코드 실행 실패를 초래하는 이벤트입니다.
  • 디버그: 이 수준은 주로 개발자가 활용합니다.

로깅은 어디에서 수행됩니까?

로그 이벤트를 대기열에 넣을 수 있으며 여러 리스너가 대기열을 수신하고 필요한 모든 로그에 쓸 수 있습니다. 어디에 기록할지 결정하기 전에 대상 방법론이 여러 로그 메시지에 대처할 수 있다는 점을 알아야 합니다. 다음은 일반적인 로그 위치 중 일부입니다.



  • 표준 출력
  • 표준 오류
  • 콘솔

기본은 이렇게 되어있습니다' 콘솔.로그() ' 그리고 ' console.info() ” 메소드는 “에 기록됩니다. 표준 출력 '. 그러나, 그 ' 콘솔.경고() ' 그리고 ' 콘솔.오류() ” 메소드는 “에 기록됩니다. 표준 오류 '. 이러한 메서드는 콘솔에 출력을 표시합니다. 프런트엔드에서는 프로그래머의 도구 콘솔이 됩니다.



Node.js에서 로깅을 구현하는 방법은 무엇입니까?

다양한 상황에서 로깅의 필요성을 분석하는 것은 해당 로깅 접근 방식을 구현하는 데 중요합니다. node.js의 로그인은 아래에 설명된 접근 방식을 통해 구현할 수 있습니다.





  • 콘솔.로그() ' 방법.
  • 콘솔.경고() ' 방법.
  • 콘솔.오류() ' 방법.
  • 콘솔.테이블() ' 방법.
  • 디버그 모듈.
  • 윈스턴 패키지.

접근법 1: 'console.log()' 메소드를 사용하여 node.js에서 로깅 구현

콘솔.로그() ” 메서드는 콘솔에 출력을 표시하며 때때로 코드 기능을 테스트하는 데 도움이 됩니다.

통사론



콘솔. 통나무 ( 엉망 )

이 구문에서는 “ 엉망 ”는 콘솔에 쓸 메시지를 의미합니다.

이제 콘솔에 제공된 메시지를 기록하는 아래 제공된 코드 블록으로 진행하십시오.

콘솔. 통나무 ( '이것이 리눅스힌트입니다!' ) ;

콘솔. 통나무 ( '이것은 Node.js입니다!' ) ;

산출

이 결과는 명시된 메시지가 콘솔에 적절하게 표시되었음을 암시할 수 있습니다.

접근법 2: 'console.warn()' 메서드를 사용하여 node.js에서 로깅 구현

콘솔.경고() ” 메소드는 콘솔에 경고 메시지를 표시합니다.

통사론

콘솔. 경고하다 ( 엉망 )

주어진 구문에서 “ 엉망 ”는 콘솔에 표시될 메시지(사용자 정의도 가능)를 나타냅니다.

이제 '의 도움으로 사용자 정의 경고 메시지를 표시하는 다음 코드 줄로 이동하십시오. 콘솔.경고() ' 방법:

콘솔. 경고하다 ( '이건 경고야!' ) ;

산출

표시된 대로 지정된 사용자 정의 경고가 적절하게 표시됩니다.

접근법 3: 'console.error()' 메소드를 사용하여 node.js에서 로깅 구현

이 메서드는 콘솔에 오류 메시지를 씁니다.

통사론

콘솔. 오류 ( [ 데이터 ] [ , ... 인수 ] )

이 구문에서는:

  • 데이터 ”는 기본 메시지를 나타냅니다.
  • 인수 '라는 가치를 나타냅니다.

반환 값

이 메서드는 오류 메시지를 검색합니다.

만족되지 않은 조건에 대해 오류 메시지를 기록하는 다음 코드 조각의 개요:

엑스 = 150 ;
만약에 ( 엑스 < 100 ) {
콘솔. 통나무 ( '가서 좋아요' ) ;
}
또 다른 {
콘솔. 오류 ( '부적절한 번호' ) ;
}

이 코드에 따르면:

  • 조건을 분석할 정수를 초기화합니다.
  • 그 후 “ 만약에 ”문을 사용하여 초기화된 정수가 “100”보다 작을 경우 지정된 메시지가 표시됩니다.
  • 그렇지 않으면 “ 또 다른 ” 문은 “에서 오류 메시지를 실행합니다. 콘솔.오류() ' 방법.

산출

이 출력은 조건이 충족되지 않으면 그에 따라 사용자 지정 오류 메시지가 콘솔에 표시된다는 것을 확인합니다.

접근법 4: 'console.table()' 메서드를 사용하여 node.js에서 로깅 구현

이 방법은 콘솔에 테이블을 생성하고 표시합니다.

통사론

콘솔. 테이블 ( TD, TC )

여기, ' TD ”는 테이블 데이터를 나타내고, “ TC ”는 테이블 열의 배열을 나타냅니다.

이제 비디오 데이터 유형의 할당된 값에 별도의 인덱스를 두 번 할당하여 테이블을 생성하는 아래 코드 문을 살펴보겠습니다.

콘솔. 테이블 ( [ { 엑스 : 10 , ㅏ : '괴롭히다' } , { 엑스 : 열 다섯 , ㅏ : '와 함께' } ] ) ;

산출

접근법 5: '디버그 모듈'을 사용하여 node.js에서 로깅 구현

이 모듈은 백엔드가 인터넷 요청을 받을 때 웹 미들웨어(예: Express, Koa 등)의 상태에 관한 추가 정보를 기록하는 데 사용할 수 있습니다. 미들웨어는 요청 파이프라인에 배치됩니다.

로깅 미들웨어를 설정하는 접근 방식은 다음과 같습니다.

예 1: 애플리케이션에서 로깅 미들웨어 설정

앱.사용() ” 함수는 지정된 경로에 대상 미들웨어 기능을 탑재합니다.

통사론

앱. 사용 ( 태평양 표준시, CB )

위에 주어진 구문에서:

  • 태평양 표준시 ”는 미들웨어 기능이 호출될 경로를 의미한다.
  • CB '는 미들웨어 기능에 해당합니다.

다음은 애플리케이션을 통해 로깅 미들웨어를 설정하는 코드 데모와 논의된 방법입니다.

const = 표현하다 ( )

const 로그미들웨어 = 필요하다 ( '내 로깅 미들웨어' )

앱. 사용 ( 로그미들웨어 )

이 코드에서 Express 애플리케이션을 생성하고 ' 내 로깅 미들웨어 '를 클릭하여 로깅 미들웨어 작업을 시작합니다. 마지막으로 “ 앱.사용() ” 함수를 사용하여 지정된 경로에 대상 미들웨어 기능을 탑재합니다.

예 2: 라우터를 통해 애플리케이션에서 로깅 미들웨어 설정

라우터.사용() ” 기능은 대상 라우터를 통해 제공되는 경로에 대한 미들웨어를 마운트합니다.

통사론

라우터. 사용 ( for, 기능 )

이 구문에서는:

  • 태평양 표준시 ”는 미들웨어 경로를 나타냅니다.
  • 기능 ”는 콜백으로 전달된 함수에 해당합니다.

아래 예에서는 라우터 객체와 ' 라우터.사용() ' 기능:

const 라우터 = 표현하다. 라우터 ( )

const rtLogging미들웨어 = 필요하다 ( '내 경로 로깅-미들웨어' )

라우터. 사용 ( rtLogging미들웨어 )

이 코드에서는:

  • 익스프레스.라우터() ” 함수는 새로운 라우터 객체를 생성합니다.
  • 그 후에는 “ 내 경로 로깅 미들웨어 ” 그리고 마찬가지로 “ 라우터.사용() ” 기능을 사용하여 대상 라우터가 제공하는 경로에 대한 미들웨어를 마운트합니다.

접근법 6: “Winston 패키지”를 사용하여 node.js에서 로깅 구현

이 특정 패키지는 저장소 옵션, 여러 로그 수준, 쿼리 및 프로파일러로 구성됩니다. 다음은 이 접근 방식을 통해 로깅을 구현하는 코드 데모입니다.

const 엑스 = 표현하다 ( )
const 포함하다 = 필요하다 ( '윈스턴' )
const 콘솔수송 = 새로운 포함하다. 수송 . 콘솔 ( )
const 선택하다 = {
수송 : [ 콘솔수송 ]
}
const 나무꾼 = 새로운 포함하다. createLogger ( 선택하다 )
함수 표시요청 ( 요청, 입술, 다음 ) {
나무꾼. 정보 ( 요구사항 URL )
다음 ( )
}
엑스. 사용 ( 디스플레이요청 )
함수 표시오류 ( 오류, 요청, 입술, 다음 ) {
나무꾼. 오류 ( 실수 )
다음 ( )
}
엑스. 사용 ( 표시 오류 )

이 코드에서는:

  • 필터링을 사용하여 여러 전송을 설정할 수 있으며 사용자 정의 포맷터를 설정할 수 있습니다.
  • 또한 여러 로거 인스턴스가 서로 다른 함수로 지정됩니다. 즉, ' 로거.정보() ' 그리고 ' 로거.오류() '.
  • 이러한 로거는 각각 정보와 오류 메시지를 표시합니다.
  • 이 코드에서는 요청된 URL만 기록됩니다.

아래 주어진 매개변수는 로거에 의해 사용됩니다:

이름 기본 설명
체재 윈스턴.format.json 정보 메시지의 형식을 지정합니다.
조용한 거짓 true인 경우 모든 로그가 일시중단됩니다.
종료 오류 진실 false인 경우 처리된 예외로 인해 process.exit가 발생하지 않습니다.
레벨 Winston.config.npm.levels 수준은 로그 우선순위를 나타냅니다.

결론

node.js의 로그인은 다음을 통해 구현할 수 있습니다. 콘솔.로그() ” 방법, “ 콘솔.경고() ” 방법, “ 콘솔.오류() ” 방법, “ 콘솔.테이블() ” 방법, “ 디버그 모듈 ', 또는 '를 통해 윈스턴 패키지 '. 콘솔 메서드는 정보와 오류 메시지를 표시합니다. 디버그 모듈은 웹 미들웨어 상태에 대한 추가 정보를 기록하며 Winston 패키지에는 저장소 옵션과 다양한 로그 수준이 포함되어 있습니다.