mirror of
https://github.com/edgelesssys/constellation.git
synced 2024-12-27 08:29:33 -05:00
46 lines
978 B
Go
46 lines
978 B
Go
package gcp
|
|
|
|
import (
|
|
"context"
|
|
"log"
|
|
|
|
"cloud.google.com/go/logging"
|
|
"github.com/edgelesssys/constellation/internal/gcpshared"
|
|
)
|
|
|
|
type Logger struct {
|
|
client *logging.Client
|
|
logger *log.Logger
|
|
}
|
|
|
|
// NewLogger creates a new Cloud Logger for GCP.
|
|
// https://cloud.google.com/logging/docs/setup/go
|
|
func NewLogger(ctx context.Context, providerID string, logName string) (*Logger, error) {
|
|
projectID, _, _, err := gcpshared.SplitProviderID(providerID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
client, err := logging.NewClient(ctx, projectID)
|
|
if err != nil {
|
|
return nil, err
|
|
}
|
|
|
|
logger := client.Logger(logName).StandardLogger(logging.Info)
|
|
|
|
return &Logger{
|
|
client: client,
|
|
logger: logger,
|
|
}, nil
|
|
}
|
|
|
|
// Disclose stores log information in GCP Cloud Logging! Do **NOT** log sensitive
|
|
// information!
|
|
func (l *Logger) Disclose(msg string) {
|
|
l.logger.Println(msg)
|
|
}
|
|
|
|
// Close waits for all buffer to be written.
|
|
func (l *Logger) Close() error {
|
|
return l.client.Close()
|
|
}
|