コード例 #1
0
        private static void RegisterTraceIdGenerator(this AspNetLogServiceCollection serviceImpl)
        {
            serviceImpl.AddDependency(s => s.TryAdd(ServiceDescriptor.Scoped <FallbackTraceIdAccessor, FallbackTraceIdAccessor>()));

            if (!ExpectedTraceIdGeneratorName.HasValue())
            {
                serviceImpl.AddDependency(s => s.TryAdd(ServiceDescriptor.Scoped(__traceIdGeneratorFactory)));
                ExpectedTraceIdGeneratorName.Value = nameof(SystemTraceIdGenerator);
            }

            // ReSharper disable once InconsistentNaming
            ILogTraceIdGenerator __traceIdGeneratorFactory(IServiceProvider provider)
            {
                //1. Get traceIdAccessor and fallbackTraceIdAccessor from ServiceProvider
                var traceIdAccessor  = provider.GetService <TraceIdAccessor>();
                var fallbackAccessor = provider.GetRequiredService <FallbackTraceIdAccessor>();

                //2. Create a new instance of SystemTraceIdGenerator
                var generator = new SystemTraceIdGenerator(traceIdAccessor, fallbackAccessor);

                //3. Scoped update
                LogTraceIdGenerator.ScopedUpdate(generator);

                //4. Done, and return.
                return(generator);
            }
        }
コード例 #2
0
 private static void RegisterCoreComponents(AspNetLogServiceCollection serviceImpl)
 {
     serviceImpl.AddDependency(s => s.AddSingleton <ILoggingServiceProvider, AspNetLoggingServiceProvider>());
     serviceImpl.BuildConfiguration();
     serviceImpl.ActiveSinkSettings();
     serviceImpl.ActiveOriginConfiguration();
     serviceImpl.AddDependency(s => s.AddSingleton(Options.Create((LoggingOptions)serviceImpl.ExposeLogSettings())));
     serviceImpl.AddDependency(s => s.AddSingleton(serviceImpl.ExposeLoggingConfiguration()));
 }
コード例 #3
0
        public static void RegisterCosmosLogging(this HttpApplication application, Action <ILogServiceCollection> config = null)
        {
            if (application == null)
            {
                throw new ArgumentNullException(nameof(application));
            }
            var serviceImpl = new AspNetLogServiceCollection();

            config?.Invoke(serviceImpl);

            RegisterCoreComponents(serviceImpl);

            BuildSoloContainer(serviceImpl);

            UpdateStaticProvider();
        }
コード例 #4
0
 private static void RegisterEnricherComponents(AspNetLogServiceCollection serviceImpl)
 {
     serviceImpl.ActiveLogEventEnrichers();
 }