Google Functions : Node.js에서 중요도가있는 로깅

지난번 Google Functions : console.info, console.error 등과 로그 뷰어의 '심각도'의 관계 라는 기사를 투고했습니다. 여기서는 console.errorconsole.info 등의 Console API에서는 GCP의 로그 중요도(severity)가 DEFAULT
GCP의 중요도는 이 두 가지 밖에 없으며 다음 9가지 수준이 있습니다.



이 소식에서는 Google Cloud 로깅 클라이언트 라이브러리를 사용하여 Cloud Functions에서 심각도가 지정된 로깅을 수행하는 방법에 대해 설명합니다.

이 게시물에서 배우기


  • Google Cloud Function & Node.js에서 @google-cloud/logging을 사용하여 중요도를 기록하는 방법
  • 그리고 그 번거로움.
  • ERROR와 @google-cloud/logging에 기록 된 로그 내용의 차이.

  • 로깅 클라이언트 라이브러리 설치



    먼저 필요한 로깅 클라이언트 라이브러리를 설치합니다.
    yarn add @google-cloud/logging
    

    라이브러리를 Cloud Functions에 통합



    그런 다음 이 로깅 라이브러리를 Cloud Functions 구현에 통합합니다.

    아래 코드가 내장된 것입니다. console.log 를 사용하여 로깅하는 것과 치고 바뀌어, 여러가지 아래 준비가 필요한 것과, 로그를 기록할 때마다 로그 엔트리 오브젝트를 작성할 필요가 있는 것을 알 수 있습니다. 조금 귀찮을 것 같네요.

    index.js
    const { Logging } = require('@google-cloud/logging')
    
    exports.loggingWithClient = async (req, res) => {
      // クライアントを作る
      const logging = new Logging()
    
      // ログ出力先を決めてロガーを作る
      const log = logging.log('my-name')
    
      // ログエントリーを作る
      const entry = log.entry(
        {
          resource: { type: 'global' },
          severity: 'INFO', // 重要度「INFO」を指定
        },
        'ログをクライアントで書き込むテスト',
      )
    
      // ログを書き込む
      await log.write(entry)
      res.send('OK')
    }
    

    일단 이것을 배포하고,
    gcloud functions deploy loggingWithClient --runtime=nodejs12 --trigger-http
    

    전화 해 봅시다 :
    curl https://asia-northeast1-${PROJECT}.cloudfunctions.net/loggingWithClient
    

    어떻게 로그가 기록되었는지, 로그 뷰어를 열어보십시오. console.log 로 기록한 로그는 자동으로 어떤 함수의 것인가에 관련지을 수 있기 (위해)때문에, 관리 콘솔의 「Cloud Functions」로부터 해당 함수의 「로그 표시」로부터 가는 도선을 사용할 수 있었습니다만, 위의 코드 로 기록 된 로그는 함수에 연결되어 로깅되지 않으므로 로깅의 로그 뷰어에서 찾습니다.



    이 도선으로부터라면, 프로젝트의 전체 로그가 나오므로, 많은 로그가 있는 경우는 「최근의 3분」등으로 좁히면 찾아내기 쉽습니다.



    이와 같이, console.log 등으로는 할 수 없었던 중요도 「INFO」로 로깅되고 있는 것을 확인할 수 있습니다:



    이번에 시도한 샘플 코드는 로그 항목의 메타 데이터를 다양하게 생략했기 때문에 상당히 질소적인 내용이 되었습니다.



    아래는 보통 console.info 했을 뿐의 로그 엔트리입니다만, 그것과 비교하면 정보의 적음을 알 수 있습니다:



    요약



    이 게시물을 통해 다음을 알았다고 생각합니다.
  • Google Cloud Function & Node.js에서 @google-cloud/logging을 사용하여 중요도를 기록하는 방법
  • 그리고 그 번거로움.
  • console.log와 @google-cloud/logging에 기록 된 로그 내용의 차이.

  • @google-cloud/logging은 상당히 낮은 수준의 로깅을 할 수 있지만 사용하기 쉽지 않으며 어떤 함수에서 실행되었는지 등은 자동으로 기록되지 않으므로 다음에 더 편리한 방법에 대해 게시하고 싶습니다. .

    좋은 웹페이지 즐겨찾기