/// <summary> /// Enable all <see cref="ILoggingConnector"/> services /// </summary> /// <param name="serilog"></param> /// <param name="jeebs"></param> internal static void EnableConnectors(LoggerConfiguration serilog, JeebsConfig jeebs) { // Get all connectors var connectors = new List <ILoggingConnector>(); TypeF.GetTypesImplementing <ILoggingConnector>().ForEach(t => { var i = Activator.CreateInstance(t); if (i is ILoggingConnector h) { connectors.Add(h); } }); // Enable each connector foreach (var connector in connectors) { connector.Enable(serilog, jeebs); } }
/// <summary> /// Configure all enabled <see cref="ILoggingProvider"/> services /// </summary> /// <param name="serilog"></param> /// <param name="jeebs"></param> internal static void ConfigureProviders(ref LoggerConfiguration serilog, JeebsConfig jeebs) { // Get enabled providers var enabledProviders = jeebs.Logging.Providers.Where(h => h.Value.Enabled).ToList(); // If no providers are enabled, add basic console logging and return if (enabledProviders.Count == 0) { _ = serilog.WriteTo.Console(); return; } // Get provider services var providers = new Dictionary <string, ILoggingProvider>(); TypeF.GetTypesImplementing <ILoggingProvider>().ForEach(t => { var i = Activator.CreateInstance(t); if (i is ILoggingProvider h) { providers.Add(h.Type, h); } }); // Configure enabled providers foreach (var(providerInfo, providerConfig) in enabledProviders) { // Get service definition var(serviceType, serviceName) = ServicesConfig.SplitDefinition(providerInfo); // Get hook minimum - default minimum will override this if it's higher var providerMinimum = GetMinimum(providerConfig.Minimum, jeebs.Logging.Minimum); // Configure provider if (providers.TryGetValue(serviceType, out var provider)) { provider.Configure(serilog, jeebs, serviceName, providerMinimum); } } }