/// <summary> /// Processes an entire directory of log files. /// </summary> public LogsetParsingResult ParseLogset(LogsetParsingRequest request) { Log.InfoFormat("Processing log directory '{0}'..", request.Target); LogsetParsingResult result; using (var parseTimer = new LogsharkTimer("Parsed Files", request.LogsetHash, GlobalEventTimingData.Add)) { var logsetPreprocessor = new LogsetPreprocessor(tuningOptions); Queue <LogFileContext> logFiles = logsetPreprocessor.Preprocess(request.Target, request.ArtifactProcessor, request.CollectionsToParse); Initialize(request); using (GetProcessingWrapper(request)) { result = ProcessFiles(logFiles, request.ArtifactProcessor.GetParserFactory(request.Target), request.LogsetHash); } Log.InfoFormat("Finished processing log directory '{0}'! [{1}]", request.Target, parseTimer.Elapsed.Print()); } Finalize(request, result); var validator = GetValidator(); validator.ValidateDataExists(request.LogsetHash); return(result); }
public MongoWriter(LogsharkRequest request, IParserFactory parserFactory) { logsharkRequest = request; this.parserFactory = parserFactory; logsetPreprocessor = new LogsetPreprocessor(request, parserFactory); database = request.Configuration.MongoConnectionInfo.GetDatabase(request.RunContext.MongoDatabaseName); }