private ProcessLogTypeResult ProcessLogType(IEnumerable <LogSetInfo> logSetParts, LogTypeInfo logTypeInfo, IList <IPlugin> plugins)
        {
            var overallProcessingNumbers = new ProcessLogTypeResult();

            using var _ = _logger.BeginScope(logTypeInfo.LogType);

            foreach (var logSetInfo in logSetParts)
            {
                _logger.LogInformation("Starting to process log set part `{logSetPartPath}` for {logType} logs", logSetInfo.Path, logTypeInfo.LogType);
                var partProcessingResults = logSetInfo.IsZip
                    ? ProcessZip(logSetInfo, logTypeInfo, plugins)
                    : ProcessDir(logSetInfo, logTypeInfo, plugins);
                _logger.LogInformation("Completed processing `{logSetPartPath}` for {logType} logs. {partProcessingResults}", logSetInfo.Path, logTypeInfo.LogType, partProcessingResults);
                overallProcessingNumbers.AddNumbersFrom(partProcessingResults);

                if (!partProcessingResults.IsSuccessful)
                {
                    break;
                }
            }

            return(overallProcessingNumbers);
        }