fix: message formatting errors in GELF exporter
The library used to transport GELF messages did not prefix extra fields with `_` as was previously assumed and the application name was not passed correctly from configuration to the exporter. Now fixed. Related: goc_marek/salego#693
This commit is contained in:
		| @@ -31,10 +31,17 @@ func Log(writer *gelf.UDPWriter, msg GELFMessage) { | ||||
| 		if err != nil { | ||||
| 			log.Println(err) | ||||
| 		} | ||||
| 	} else { | ||||
| 		log.Fatalln("gelf.UDPWriter is not set!") | ||||
| 	} | ||||
| } | ||||
|  | ||||
| func (g GELFMessage) GELFFormat() *gelf.Message { | ||||
| 	prefixedExtras := make(map[string]interface{}, len(g.ExtraFields)) | ||||
| 	for k, v := range g.ExtraFields { | ||||
| 		prefixedExtras["_"+k] = v | ||||
| 	} | ||||
|  | ||||
| 	return &gelf.Message{ | ||||
| 		Version:  "1.1", | ||||
| 		Host:     g.Host, | ||||
| @@ -42,6 +49,6 @@ func (g GELFMessage) GELFFormat() *gelf.Message { | ||||
| 		Full:     g.LongMessage, | ||||
| 		TimeUnix: float64(g.Timestamp.Unix()), | ||||
| 		Level:    int32(g.Level), | ||||
| 		Extra:    g.ExtraFields, | ||||
| 		Extra:    prefixedExtras, | ||||
| 	} | ||||
| } | ||||
|   | ||||
| @@ -29,6 +29,7 @@ func New(options ...Option) (*Exporter, error) { | ||||
|  | ||||
| 	return &Exporter{ | ||||
| 		gelfWriter: writer, | ||||
| 		appName:    cfg.AppName, | ||||
| 	}, nil | ||||
|  | ||||
| } | ||||
|   | ||||
		Reference in New Issue
	
	Block a user