code: func (m *EventManager) formatMessage(event types.BaseEvent) {
  	id := reflect.ValueOf(event).Elem().Type().Name()
  	e := event.GetEvent()
  
  	t, ok := m.templates[id]
  	if !ok {
  		for _, info := range m.Description.EventInfo {
  			if info.Key == id {
  				t = template.Must(template.New(id).Parse(info.FullFormat))
  				m.templates[id] = t
  				break
  			}
  		}
  	}
  
  	if t != nil {
  		var buf bytes.Buffer
  		if err := t.Execute(&buf, event); err != nil {
  			log.Print(err)
  		}
  		e.FullFormattedMessage = buf.String()
  	}
  
  	if logEvents {
  		log.Printf("[%s] %s", id, e.FullFormattedMessage)
  	}
  }
docs: // formatMessage applies the EventDescriptionEventDetail.FullFormat template to the given event's FullFormattedMessage field.