Пример #1
0
        /// <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);
        }
Пример #2
0
        /// <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());
        }