/// <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); }
/// <summary> /// Processes an entire directory of log files. /// </summary> public void ProcessLogset() { Log.InfoFormat("Processing log directory '{0}'..", logsharkRequest.RunContext.RootLogDirectory); var parseTimer = logsharkRequest.RunContext.CreateTimer("Parsed Files"); Queue <LogFileContext> logFiles = logsetPreprocessor.Preprocess(); var metadataWriter = new LogsetMetadataWriter(logsharkRequest); metadataWriter.WritePreProcessingMetadata(); using (new MongoProcessingHeartbeatTimer(logsharkRequest)) { ProcessFiles(logFiles); } metadataWriter.WritePostProcessingMetadata(processedSuccessfully: true); metadataWriter.WriteMasterMetadataRecord(); parseTimer.Stop(); Log.InfoFormat("Finished processing log directory {0}! [{1}]", logsharkRequest.RunContext.RootLogDirectory, parseTimer.Elapsed.Print()); }