Пример #1
0
        public static IPipelines RegisterCosmosLogging(this IPipelines pipelines, TinyIoCContainer container, Action <ILogServiceCollection> config)
        {
            if (pipelines == null)
            {
                throw new ArgumentNullException(nameof(pipelines));
            }
            if (container == null)
            {
                throw new ArgumentNullException(nameof(container));
            }

            var serviceImpl = new NancyLogServiceCollection();

            config?.Invoke(serviceImpl);

            RegisterCoreComponents(serviceImpl);

            BuildSoloContainer(serviceImpl);

            UpdateStaticProvider();

            UpdateTinyIoCContainer(container);

            NancyPipelinesHook.RegisterLoggingHandlers(pipelines);

            return(pipelines);
        }
Пример #2
0
        private static void RegisterTraceIdGenerator(this NancyLogServiceCollection 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);
            }
        }
Пример #3
0
 private static void RegisterCoreComponents(NancyLogServiceCollection serviceImpl)
 {
     serviceImpl.AddDependency(s => s.AddSingleton <ILoggingServiceProvider, NancyLoggingServiceProvider>());
     serviceImpl.BuildConfiguration();
     serviceImpl.ActiveSinkSettings();
     serviceImpl.ActiveOriginConfiguration();
     serviceImpl.AddDependency(s => s.AddSingleton(Options.Create((LoggingOptions)serviceImpl.ExposeLogSettings())));
     serviceImpl.AddDependency(s => s.AddSingleton(serviceImpl.ExposeLoggingConfiguration()));
 }
Пример #4
0
 private static void RegisterCoreComponents(NancyLogServiceCollection serviceImpl)
 {
     serviceImpl.AddDependency(s => s.AddSingleton <ILoggingServiceProvider, NancyLoggingServiceProvider>());
     serviceImpl.AddDependency(s => s.AddSingleton <IPropertyFactoryAccessor, ShortcutPropertyFactoryAccessor>());
     serviceImpl.BuildConfiguration();
     serviceImpl.ActiveSinkSettings();
     serviceImpl.ActiveOriginConfiguration();
     serviceImpl.RegisterTraceIdGenerator();
     serviceImpl.AddDependency(s => s.AddSingleton(Options.Create((LoggingOptions)serviceImpl.ExposeLogSettings())));
     serviceImpl.AddDependency(s => s.AddSingleton(serviceImpl.ExposeLoggingConfiguration()));
 }
Пример #5
0
 private static void RegisterEnricherComponents(NancyLogServiceCollection serviceImpl)
 {
     serviceImpl.ActiveLogEventEnrichers();
 }