/// <summary>
        /// Returns <see cref="Configuration"/> object from a Configuration.
        /// </summary>
        public static Configuration FromIConfiguration(ILoggerFactory loggerFactory, IConfiguration configuration)
        {
            ILogger logger = loggerFactory.CreateLogger <Configuration>();

            return(new Configuration(GetProperty(JaegerServiceName, logger, configuration), loggerFactory)
                   .WithTracerTags(TracerTagsFromIConfiguration(logger, configuration))
                   .WithTraceId128Bit(GetPropertyAsBool(JaegerTraceId128Bit, logger, configuration).GetValueOrDefault(false))
                   .WithReporter(ReporterConfiguration.FromIConfiguration(loggerFactory, configuration))
                   .WithSampler(SamplerConfiguration.FromIConfiguration(loggerFactory, configuration))
                   .WithCodec(CodecConfiguration.FromIConfiguration(loggerFactory, configuration)));
        }