Google Cloud Functions에서 로그 수준의 Stackdriver Logging 활용
5548 단어 5cloudfunctions
종종 Go (go111)에서 Cloud Functions를 사용하지만 표준 log 패키지를 사용해도 로그 수준을 분리 할 수 없습니다.
위 문서를 참조하면 Cloud Functions는 다음과 같이 작성할 수 있습니다.
func ExampleLogging(w http.ResponseWriter, r *http.Request) {
ctx := context.Background()
projectID := os.Getenv("GCP_PROJECT")
client, err := logging.NewClient(ctx, projectID)
if err != nil {
log.Fatalf("Failed to create client: %v", err)
}
defer client.Close()
logName := "cloudfunctions.googleapis.com%2Fcloud-functions"
logger := client.Logger(logName).StandardLogger(logging.Info)
logger.Println("info")
}
조금 번잡합니다. 또한 log 패키지의 출력과 달리
execution_id
가 부여되지 않으므로 각 함수 실행 로그를 함께 검색할 수 없습니다.github.com/groove-x/cloudfunctions/log 사용
이 문제를 해결하는 지원 패키지기주 b. 코 m/g를 소개합니다.
package function
import (
"fmt"
"net/http"
"github.com/groove-x/cloudfunctions/log"
)
func ExampleLogging(w http.ResponseWriter, r *http.Request) {
log.WithRequest(r)
log.Debug("debug")
log.Info("info")
log.Warn("warn")
log.Error("error")
}
간단하네요!
결과는 여기 :
log.WithRequest(r)
에서 요청 정보를 로거에게 기억하면 execution_id
및 추적에 대한 정보가 자동으로 추가됩니다.이상.
Reference
이 문제에 관하여(Google Cloud Functions에서 로그 수준의 Stackdriver Logging 활용), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/atotto/items/9a17a3020f6407c5af0c텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)