public ApplicationInsightLoggerFactory( LogLevelEnum defaultMinimumLogLevel, IFullyQualifiedName defaultLoggerSource) { _defaultMinimumLogLevel = defaultMinimumLogLevel; _defaultLoggerSource = defaultLoggerSource; }
public static IDependencyResolver UseAzureApplicationInsightsLogger( this IDependencyResolver dependencyResolver, LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning, IFullyQualifiedName defaultLoggerSource = null) { return dependencyResolver .Register<ILoggerFactory>(() => new ApplicationInsightLoggerFactory(defaultMinimumLogLevel, defaultLoggerSource)) .Register(() => new ApplicationInsightLoggerFactory(defaultMinimumLogLevel, defaultLoggerSource).CreateLogger()); }
public global::Serilog.ILogger CreateSerilog(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null) { LoggerConfiguration loggerConfiguration = GetLoggerConfiguration(minimumLogLevel); source = source ?? _defaultLoggerSource; if (source != null) { loggerConfiguration.Enrich.With(new FullyQualifiedNameEnricher(source, _sourceFqnPropertyName)); } return new LoggerFacade(loggerConfiguration.CreateLogger()); }
public ILogger CreateLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null) { return new AzureQueueLogger.Implementation.QueueLogger(_runtimeEnvironment, GetQueue(), _queueSerializer, source ?? _defaultLoggerSource, _queueLoggerExtension, minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel), _correlationIdProvider); }
/// <summary> /// Register Serilog as the frameworks default logger. /// </summary> /// <param name="dependencyResolver">Dependency resolver to register Serilog in</param> /// <param name="configurationProvider">A function that returns a SeriLog LoggerConfiguration class. /// If null then Serilog is configured to write using the Trace sink. Note that a LoggerConfiguration returned from this function /// will be further annotated with a minimum log level and property enrichment for correlation ID and source. If you don't want /// any of that then use the CreateSerilog(LoggerConfiguration loggerConfiguration) on ISerilogFactory</param> /// <param name="defaultMinimumLogLevel">The default minimum log level for loggers created by the factory</param> /// <param name="defaultLoggerSource">The component source to use for a logger when no source is specified - defaults to null.</param> /// <param name="sourceFqnPropertyName">The Serilog property name for the source component fully qualified name</param> /// <param name="correlationIdPropertyName">The Serilog property name for the correlation ID</param> /// <returns></returns> public static IDependencyResolver UseSerilog(this IDependencyResolver dependencyResolver, Func<LoggerConfiguration> configurationProvider = null, LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning, IFullyQualifiedName defaultLoggerSource = null, string sourceFqnPropertyName = "SourceFqn", string correlationIdPropertyName = "CorrelationId") { return dependencyResolver .Register<ILoggerFactory>(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName)) .Register<ISerilogFactory>(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName)) .Register(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName).CreateLogger()) .Register(() => new SerilogFactory(configurationProvider, dependencyResolver.Resolve<ICorrelationIdProvider>(), defaultMinimumLogLevel, defaultLoggerSource, sourceFqnPropertyName, correlationIdPropertyName).CreateSerilog()); }
/// <summary> /// Register the dependencies in a container /// </summary> /// <param name="container">The container to use</param> /// <param name="correlationIdKey">The correlation ID key. Defaults to correlation-id</param> /// <param name="defaultTraceLoggerMinimumLogLevel"></param> /// <param name="defaultLoggerSource">The component source to use for a default logger when no source is specified - defaults to null.</param> public static IDependencyResolver UseCore( this IDependencyResolver container, string correlationIdKey = "correlation-id", LogLevelEnum defaultTraceLoggerMinimumLogLevel = LogLevelEnum.Warning, IFullyQualifiedName defaultLoggerSource = null) { Func<ICorrelationIdProvider> createCorrelationIdProvider; if (!string.IsNullOrWhiteSpace(correlationIdKey)) { createCorrelationIdProvider = () => new CallContextCorrelationIdProvider(correlationIdKey); } else { createCorrelationIdProvider = () => new NullCorrelationIdProvider(); } return container .Register<IAsynchronousDelay, AsynchronousDelay>() .Register<ITimerThreadPoolExecuter, TimerThreadPoolExecuter>() .Register<ITimerFactory, TimerFactory>() .Register<IBackoffPolicy, BackoffPolicy>() .Register<IBackoffPolicyTimingProvider, BackoffPolicyDefaultTimingProvider>() .Register<IAsynchronousBackoffPolicy, AsynchronousBackoffPolicy>() .Register<IBackoffPolicyFactory, BackoffPolicyFactory>() .Register<ILeasedRetry, LeasedRetry>() .Register<IWaitHandle, ManualResetEventWaitHandle>() .Register<IApplicationResourceSettingNameProvider, ApplicationResourceSettingNameProvider>() .Register<IAsyncApplicationResourceSettingProvider, AsyncApplicationResourceSettingProvider>() .Register<IAsyncApplicationResourceFactory, AsyncApplicationResourceFactory>() .Register<IApplicationResourceFactory, ApplicationResourceFactory>() .Register<IApplicationResourceSettingProvider, ApplicationResourceSettingProvider>() .Register<IQueueFactory, NotSupportedQueueFactory>() .Register<ILeaseManagerFactory, NotSupportedLeaseManagerFactory>() .Register<IBlobRepositoryFactory, NotSupportedBlobRepositoryFactory>() .Register(createCorrelationIdProvider) .Register<ILoggerFactory>(() => new TraceLoggerFactory(defaultTraceLoggerMinimumLogLevel, defaultLoggerSource)) .Register(() => new TraceLoggerFactory(defaultTraceLoggerMinimumLogLevel, defaultLoggerSource).CreateLogger()) .Register(() => new TraceLoggerFactory(defaultTraceLoggerMinimumLogLevel, defaultLoggerSource).CreateAsynchronousLogger(defaultTraceLoggerMinimumLogLevel)) .Register<IComponentHost, ComponentHost>() .Register<IEmailQueueDispatcher, EmailQueueDispatcher>() .Register<IUnitOfWorkFactoryProvider, NotSupportedUnitOfWorkFactoryProvider>() .Register<IRuntimeEnvironment, DefaultRuntimeEnvironment>() .Register<IConfiguration>(() => new DefaultConfiguration()) .Register<IAsyncConfiguration>(() => new DefaultAsyncConfiguration()) .Register<IComponentFactory>(() => new ComponentFactory(container)) .Register<IComponentHostRestartHandler, DefaultComponentHostRestartHandler>() .Register<ILargeMessageQueueFactory, LargeMessageQueueFactory>() // internal .Register<ICoreAssemblyLogger>(() => new CoreAssemblyLogger(container.Resolve<ILoggerFactory>().CreateLogger(new LoggerSource("AccidentalFish.ApplicationSupport.Core")))); }
public SerilogFactory(Func<LoggerConfiguration> loggerConfigurationProvider, ICorrelationIdProvider correlationIdProvider, LogLevelEnum defaultMinimumLogLevel, IFullyQualifiedName defaultLoggerSource, string sourceFqnPropertyName, string correlationIdPropertyName) { _loggerConfigurationProvider = loggerConfigurationProvider; _correlationIdProvider = correlationIdProvider; _defaultMinimumLogLevel = defaultMinimumLogLevel; _defaultLoggerSource = defaultLoggerSource; _sourceFqnPropertyName = sourceFqnPropertyName; _correlationIdPropertyName = correlationIdPropertyName; }
private static ILoggerFactory GetLoggerFactory( IDependencyResolver dependencyResolver, LogLevelEnum defaultMinimumLogLevel, IFullyQualifiedName defaultLoggerSource) { IRuntimeEnvironment runtimeEnvironment = dependencyResolver.Resolve<IRuntimeEnvironment>(); IConfiguration configuration = dependencyResolver.Resolve<IConfiguration>(); IQueueLoggerExtension queueLoggerExtension = dependencyResolver.Resolve<IQueueLoggerExtension>(); ICorrelationIdProvider correlationIdProvider = dependencyResolver.Resolve<ICorrelationIdProvider>(); IQueueSerializer queueSerializer = dependencyResolver.Resolve<IQueueSerializer>(); IApplicationResourceSettingNameProvider nameProvider = dependencyResolver.Resolve<IApplicationResourceSettingNameProvider>(); return new QueueLoggerFactory(runtimeEnvironment, nameProvider, configuration, queueSerializer, queueLoggerExtension, correlationIdProvider, defaultMinimumLogLevel, defaultLoggerSource); }
public static IDependencyResolver UseQueueLogger(this IDependencyResolver dependencyResolver, Type loggerExtension = null, LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning, IFullyQualifiedName defaultLoggerSource = null) { if (loggerExtension == null) { loggerExtension = typeof (NullQueueLoggerExtension); } return dependencyResolver .Register(typeof (IQueueLoggerExtension), loggerExtension) .Register(() => GetLoggerFactory(dependencyResolver, defaultMinimumLogLevel, defaultLoggerSource)) .Register(() => GetLoggerFactory(dependencyResolver, defaultMinimumLogLevel, defaultLoggerSource).CreateLogger()) .Register(() => GetLoggerFactory(dependencyResolver, defaultMinimumLogLevel, defaultLoggerSource).CreateAsynchronousLogger()); }
public QueueLoggerFactory( IRuntimeEnvironment runtimeEnvironment, IApplicationResourceSettingNameProvider nameProvider, IConfiguration configuration, IQueueSerializer queueSerializer, IQueueLoggerExtension queueLoggerExtension, ICorrelationIdProvider correlationIdProvider, LogLevelEnum defaultMinimumLogLevel, IFullyQualifiedName defaultLoggerSource) { _runtimeEnvironment = runtimeEnvironment; _queueSerializer = queueSerializer; _queueLoggerExtension = queueLoggerExtension; _correlationIdProvider = correlationIdProvider; _defaultMinimumLogLevel = defaultMinimumLogLevel; _defaultLoggerSource = defaultLoggerSource; _queueName = configuration[nameProvider.SettingName(ApplicationSupportComponentIdentity, "logger-queue")]; _storageAccountConnectionString = configuration[nameProvider.StorageAccountConnectionString(ApplicationSupportComponentIdentity)]; }
public ILogger CreateLongLivedLogger(IFullyQualifiedName source) { return CreateShortLivedLogger(source); // TODO: throw new NotImplementedException("Work in progress - this will be a self refreshing minimum log level component"); }
public ILogger CreateShortLivedLogger(IAsynchronousQueue<LogQueueItem> queue, IFullyQualifiedName source, LogLevelEnum minimumLogLevel) { return new Logger(_runtimeEnvironment, queue, source, _loggerExtension, GetMinimumLogLevel(source), _correlationIdProvider); }
public ILogger CreateShortLivedLogger(IFullyQualifiedName source) { return new Logger(_runtimeEnvironment, _applicationResourceFactory.GetLoggerQueue(), source, _loggerExtension, GetMinimumLogLevel(source), _correlationIdProvider); }
public FullyQualifiedNameEnricher(IFullyQualifiedName source, string propertyName) { _source = source; _propertyName = propertyName; }
public FullyQualifiedNameEnricher(IFullyQualifiedName source) : this(source, "SourceFqn") { }
public ILogger CreateLongLivedLogger(IAsynchronousQueue<LogQueueItem> queue, IFullyQualifiedName source, LogLevelEnum minimumLogLevel) { return new ApplicationInsightLogger(source, minimumLogLevel); }
public IAsynchronousLogger CreateAsynchronousLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel) { return new ConsoleAsynchronousLogger(source ?? _defaultLoggerSource, minimumLogLevel.GetValueOrDefault(_defaultMinimumLoggingLevel)); }
public ILogger CreateShortLivedLogger(IFullyQualifiedName source) { return new ConsoleLogger(); }
public ILogger CreateLongLivedLogger(IAsynchronousQueue<LogQueueItem> queue, IFullyQualifiedName source, LogLevelEnum minimumLogLevel) { return new ConsoleLogger(); }
public ILogger CreateLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null) { return new TraceLogger(source ?? _defaultLoggerSource, minimumLogLevel.GetValueOrDefault(_defaultMinimumLogLevel)); }
public static IDependencyResolver UseConsoleLogger(this IDependencyResolver dependencyResolver, LogLevelEnum defaultMinimumLogLevel = LogLevelEnum.Warning, IFullyQualifiedName defaultLoggerSource = null) { return dependencyResolver.Register<ILoggerFactory>(() => new ConsoleLoggerFactory(defaultMinimumLogLevel, defaultLoggerSource)); }
public ApplicationInsightLogger(IFullyQualifiedName fullyQualifiedName, LogLevelEnum minimumLogLevel) { _fullyQualifiedName = fullyQualifiedName; _minimumLogLevel = minimumLogLevel; }
public ILogger CreateLongLivedLogger(IAsynchronousQueue<LogQueueItem> queue, IFullyQualifiedName source, LogLevelEnum minimumLogLevel) { return CreateLongLivedLogger(queue, source, minimumLogLevel); // TODO: throw new NotImplementedException("Work in progress - this will be a self refreshing minimum log level component"); }
public ILogger CreateLogger(IFullyQualifiedName source, LogLevelEnum? minimumLogLevel = null) { return new ApplicationInsightLogger(source ?? _defaultLoggerSource, GetMinimumLogLevel(minimumLogLevel)); }
private LogLevelEnum GetMinimumLogLevel(IFullyQualifiedName source) { // TODO: Pick this up from the realtime settings return LogLevelEnum.Debug; }
public TraceAsynchronousLogger(IFullyQualifiedName source, LogLevelEnum minimumLogLevel) { _source = source; _minimumLogLevel = minimumLogLevel; }
public ConsoleLogger(IFullyQualifiedName source, LogLevelEnum minimumLogLevel) { _source = source; _minimumLogLevel = minimumLogLevel; }
public ILogger CreateShortLivedLogger(IFullyQualifiedName source) { return new ApplicationInsightLogger(source, LogLevelEnum.Warning); }
public TraceLoggerFactory(LogLevelEnum defaultMinimumLogLevel, IFullyQualifiedName defaultLoggerSource) { _defaultMinimumLogLevel = defaultMinimumLogLevel; _defaultLoggerSource = defaultLoggerSource; }
public ICircuitBreaker Create(IFullyQualifiedName fullyQualifiedName) { ICircuitBreakerStateStore stateStore = _stateStores.GetOrAdd(fullyQualifiedName, fqn => new InMemoryCircuitBreakerStateStore()); return new CircuitBreaker(stateStore); }