in pkg/plugin/cloudlogging/cloudlogging.go [33:53]
func GetLogEntryMessage(entry *loggingpb.LogEntry) (string, error) {
switch t := entry.GetPayload().(type) {
case *loggingpb.LogEntry_JsonPayload:
if msg, ok := t.JsonPayload.Fields["message"]; ok {
return msg.GetStringValue(), nil
}
byteArr, err := t.JsonPayload.MarshalJSON()
if err != nil {
return "", fmt.Errorf("failed to marshal JSON payload: %v", err)
}
return string(byteArr), nil
case *loggingpb.LogEntry_TextPayload:
return t.TextPayload, nil
case *loggingpb.LogEntry_ProtoPayload:
return t.ProtoPayload.String(), nil
case nil:
return "", fmt.Errorf("empty payload %T", t)
default:
return "", fmt.Errorf("unknown payload type %T", t)
}
}