func mqCallback(delivery amqp.Delivery) { msg := new(message.LogMessage) proto.Unmarshal(delivery.Body, msg) fmt.Println(*msg.Message) switch msg.GetType() { case message.CRITICAL: break case message.ERROR: break case message.WARNING: break case message.NOTIFICATION: break } handleError(msg) }
// store log message to mongodb func handleError(msg *message.LogMessage) { fmt.Printf("%s %s: %s\n", time.Unix(msg.GetTimestamp(), 0).String(), msg.GetFromService(), msg.GetMessage()) // insert into mongo db c := mongoSession.DB("log").C("log") c.Insert(&mongoLog{ msg.GetMessage(), time.Unix(msg.GetTimestamp(), 0), msg.GetType(), msg.GetFromService(), }) }