in xray/segment.go [207:254]
func (seg *Segment) assignConfiguration(cfg *Config) {
seg.Lock()
if cfg == nil {
seg.GetConfiguration().ContextMissingStrategy = globalCfg.contextMissingStrategy
seg.GetConfiguration().ExceptionFormattingStrategy = globalCfg.exceptionFormattingStrategy
seg.GetConfiguration().SamplingStrategy = globalCfg.samplingStrategy
seg.GetConfiguration().StreamingStrategy = globalCfg.streamingStrategy
seg.GetConfiguration().Emitter = globalCfg.emitter
seg.GetConfiguration().ServiceVersion = globalCfg.serviceVersion
} else {
if cfg.ContextMissingStrategy != nil {
seg.GetConfiguration().ContextMissingStrategy = cfg.ContextMissingStrategy
} else {
seg.GetConfiguration().ContextMissingStrategy = globalCfg.contextMissingStrategy
}
if cfg.ExceptionFormattingStrategy != nil {
seg.GetConfiguration().ExceptionFormattingStrategy = cfg.ExceptionFormattingStrategy
} else {
seg.GetConfiguration().ExceptionFormattingStrategy = globalCfg.exceptionFormattingStrategy
}
if cfg.SamplingStrategy != nil {
seg.GetConfiguration().SamplingStrategy = cfg.SamplingStrategy
} else {
seg.GetConfiguration().SamplingStrategy = globalCfg.samplingStrategy
}
if cfg.StreamingStrategy != nil {
seg.GetConfiguration().StreamingStrategy = cfg.StreamingStrategy
} else {
seg.GetConfiguration().StreamingStrategy = globalCfg.streamingStrategy
}
if cfg.Emitter != nil {
seg.GetConfiguration().Emitter = cfg.Emitter
} else {
seg.GetConfiguration().Emitter = globalCfg.emitter
}
if cfg.ServiceVersion != "" {
seg.GetConfiguration().ServiceVersion = cfg.ServiceVersion
} else {
seg.GetConfiguration().ServiceVersion = globalCfg.serviceVersion
}
}
seg.Unlock()
}