public TechLogExporter(TechLogExporterSettings settings, ITechLogStorage storage, ILogger <TechLogExporter> logger = null)
        {
            _settings = settings;
            _storage  = storage;
            _logger   = logger;

            InitializeDataFlow();
        }
        public TechLogExporter(ILogger <TechLogExporter> logger, IConfiguration configuration, ITechLogStorage storage)
        {
            _settings = new TechLogExporterSettings()
            {
                LogFolder      = configuration.GetValue("Reader:LogFolder", ""),
                LiveMode       = configuration.GetValue("Reader:LiveMode", true),
                BatchSize      = configuration.GetValue("Reader:BatchSize", 10000),
                BatchFactor    = configuration.GetValue("Reader:BatchFactor", 2),
                ReadingTimeout = configuration.GetValue("Reader:ReadingTimeout", 1)
            };

            if (string.IsNullOrWhiteSpace(_settings.LogFolder))
            {
                throw new Exception("Log folder path is not specified");
            }

            _storage = storage;
            _logger  = logger;

            InitializeDataFlow();
        }