Skip to content

WIP:[POC] adding a logger on every event

Alexandre Moevi requested to merge feat/loggers-in-objects into go-logging

Résumé

Mise en place d'un proof of concept sur les logs dans les moteurs Go avec :

  • *Renommage du logger en rootLogger
  • Création d'un logger spécifique à un événement avec un contexte spécifique

Issue: #53 (moved)

Related merge requests : https://git.canopsis.net/canopsis/go-revolution/merge_requests/197

Notes

J'ajoute dans le type Event un champ Logger qui est un zerolog.Logger. Ce logge est créé quand on charge cet event à partir de la queue dans InfluxDB.


func (e *EngineAxe) WorkerProcess(msg amqp.Delivery) {
	zl.Debug().Msgf("input: %s", string(msg.Body))

	var event types.Event
	err := e.References.JSONDecoder.Decode(msg.Body, &event)
	if e.processWorkerError(err, msg) != nil {
		return
	}

	context := map[string]interface{}{
		"eid": event.GetEID(),
	}

	event.Logger = zl.NewLoggerWithContext(context)

	event.Logger.Info().Msgf("unmarshaled: %+v", event)

       ...
}
Edited by Alexandre Moevi

Merge request reports