func (event *Event) MustPublish(pub *zmqpubsub.Publisher) { data, err := json.Marshal(event) if err != nil { log.Fatal(err) } pub.MustPublish("event."+event.Type, string(data)) }
// Publish publishes an AppLogMessage to logyard after sanity checks. func (msg *Message) Publish(pub *zmqpubsub.Publisher, allowInvalidJson bool) error { // JSON must be a UTF-8 encoded string. if !utf8.ValidString(msg.Text) { msg.Text = string([]rune(msg.Text)) } data, err := json.Marshal(msg) if err != nil { if allowInvalidJson { log.Errorf("Cannot encode %+v into JSON -- %s. Skipping this message", msg, err) } else { return fmt.Errorf("Failed to encode app log record to JSON: ", err) } } key := fmt.Sprintf("apptail.%v", msg.AppGUID) pub.MustPublish(key, string(data)) return nil }