func()

in tools/go-agent/instrument/logger/frameworks/logrus_format.go [43:72]


func (format *WrapFormat) Format(entry *logrus.Entry) ([]byte, error) {
	var logContext fmt.Stringer
	keys := LogReporterLabelKeys
	if LogReporterEnable {
		ctx := GetLogContext(true)
		if ctx == nil {
			return format.Base.Format(entry)
		}
		if stringer, ok := ctx.(fmt.Stringer); ok {
			logContext = stringer
		}
		labels := make(map[string]string, len(keys))
		for _, key := range keys {
			for k, v := range entry.Data {
				if k == key {
					labels[key] = fmt.Sprintf("%v", v)
				}
			}
		}
		ReportLog(ctx, entry.Time, entry.Level.String(), entry.Message, labels)
	}
	// append trace context
	if logContext == nil {
		entry.Data[format.traceContextKey] = GetLogContextString()
	} else {
		entry.Data[format.traceContextKey] = logContext.String()
	}

	return format.Base.Format(entry)
}