func GetLogEntryMessage()

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)
	}
}