in appinsights/exception.go [52:81]
func (telem *ExceptionTelemetry) TelemetryData() TelemetryData {
details := contracts.NewExceptionDetails()
details.HasFullStack = len(telem.Frames) > 0
details.ParsedStack = telem.Frames
if err, ok := telem.Error.(error); ok {
details.Message = err.Error()
details.TypeName = reflect.TypeOf(telem.Error).String()
} else if str, ok := telem.Error.(string); ok {
details.Message = str
details.TypeName = "string"
} else if stringer, ok := telem.Error.(fmt.Stringer); ok {
details.Message = stringer.String()
details.TypeName = reflect.TypeOf(telem.Error).String()
} else if stringer, ok := telem.Error.(fmt.GoStringer); ok {
details.Message = stringer.GoString()
details.TypeName = reflect.TypeOf(telem.Error).String()
} else {
details.Message = "<unknown>"
details.TypeName = "<unknown>"
}
data := contracts.NewExceptionData()
data.SeverityLevel = telem.SeverityLevel
data.Exceptions = []*contracts.ExceptionDetails{details}
data.Properties = telem.Properties
data.Measurements = telem.Measurements
return data
}