public EventFlowLoggerProvider(LoggerInput loggerInput, IHealthReporter reporter)
        {
            Validation.Requires.NotNull(loggerInput, nameof(loggerInput));
            Validation.Requires.NotNull(reporter, nameof(reporter));

            this.loggerInput = loggerInput;
            this.reporter    = reporter;
        }
        public EventFlowLogger(string categoryName, LoggerInput loggerInput, IHealthReporter healthReporter)
        {
            Validation.Requires.NotNull(categoryName, nameof(categoryName));
            Validation.Requires.NotNull(loggerInput, nameof(loggerInput));
            Validation.Requires.NotNull(healthReporter, nameof(healthReporter));

            this.categoryName   = categoryName;
            this.loggerInput    = loggerInput;
            this.healthReporter = healthReporter;
        }
        public EventFlowLogger(string categoryName, LoggerInput loggerInput, IHealthReporter healthReporter)
        {
            Validation.Requires.NotNull(categoryName, nameof(categoryName));
            Validation.Requires.NotNull(loggerInput, nameof(loggerInput));
            Validation.Requires.NotNull(healthReporter, nameof(healthReporter));

            this.categoryName   = categoryName;
            this.loggerInput    = loggerInput;
            this.healthReporter = healthReporter;
            this.stackPool      = new ConcurrentBag <Stack <string> >();
        }