Mohamed Arshad
Mohamed Arshad

Reputation: 99

Why Google Logging client libraries not logging inside Google cloud functions?

I'm trying to implement a google cloud function to test Google Logging client library. below is my code

// Package p contains an HTTP Cloud Function.
package loggingclient
import (
    "cloud.google.com/go/logging"
    "net/http"
    "context"
    "fmt"
)
// HelloWorld prints the JSON encoded "message" field in the body
// of the request or "Hello, World!" if there isn't one.
func HelloWorld(w http.ResponseWriter, r *http.Request) {
    label := map[string]string{"priority": "High"}
    var projectName = "my-project-id"
    ctx := context.Background()
    client, err := logging.NewClient(ctx, projectName)
    if err != nil {
        fmt.Printf("client not created: %v", err)
    }
    lg := client.Logger("MY-LOGGER")
    lg.Log(logging.Entry{
        Payload:  "Hello, This is error!!",
        Severity: logging.Error,
        Labels:   label,
    })
  client.Close()
}

Here, I'm expecting a log entry with a message:"Hello, This is error!!" and with a lable:"priority": "High" and severirty "ERROR"

But actually, when I trigger this Cloud Function, I didn't get any new log entries. Therefore don't client logging libraries work inside cloud functions?, How to resolve this?
Thanks

Upvotes: 1

Views: 520

Answers (1)

Naveen Kulkarni
Naveen Kulkarni

Reputation: 803

It works on cloud functions. I have done the exact same thing in a cloud function before. You can use google's official documenation with cloud function logging here

Also ensure that the service account have necessary permissions for logging https://cloud.google.com/logging/docs/access-control

Upvotes: 1

Related Questions