示例#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
 public MongoWriter(LogsharkRequest request, IParserFactory parserFactory)
 {
     logsharkRequest    = request;
     this.parserFactory = parserFactory;
     logsetPreprocessor = new LogsetPreprocessor(request, parserFactory);
     database           = request.Configuration.MongoConnectionInfo.GetDatabase(request.RunContext.MongoDatabaseName);
 }