/// <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);
            }
        }
    }