Beispiel #1
0
        public static BrokerRConnectionBuilder WithLogging(
            this BrokerRConnectionBuilder source,
            BrokerRLogLevel level,
            Func <ILogger> logger
            )
        {
            return(source.WithLogging((sender, e) => Log(e.LogLevel, e)));

            void Log(BrokerRLogLevel logLevel, LogArgs e)
            {
                if (logLevel < level)
                {
                    return;
                }

                switch (logLevel)
                {
                case BrokerRLogLevel.Trace:
                    logger().LogTrace(e.Exception, e.Message);
                    break;

                case BrokerRLogLevel.Debug:
                    logger().LogDebug(e.Exception, e.Message);
                    break;

                case BrokerRLogLevel.Information:
                    logger().LogInformation(e.Exception, e.Message);
                    break;

                case BrokerRLogLevel.Warning:
                    logger().LogWarning(e.Exception, e.Message);
                    break;

                case BrokerRLogLevel.Error:
                    logger().LogError(e.Exception, e.Message);
                    break;

                case BrokerRLogLevel.Critical:
                    logger().LogCritical(e.Exception, e.Message);
                    break;

                case BrokerRLogLevel.None:
                    // Don't log
                    break;

                default:
                    logger().LogWarning($"Unknown log level `{logLevel:G}`. Please update `BrokerR.Client.Logging`.");
                    break;
                }
            }
        }
Beispiel #2
0
 public BrokerROptions(IServiceProvider serviceProvider, string url)
 {
     ServiceProvider   = serviceProvider;
     ConnectionBuilder = new BrokerRConnectionBuilder(url);
 }