public void Range()
        {
            var log = new[]
            {
                "2018-09-09 23:58:35,66023314,0",
                "2018-09-10 08:08:31,66023314,0",
                "2018-09-10 11:03:01,66024154,0"
            };
            var processor = new LogProcessor();
            Func <DateTime, DateTime, IEnumerable <string> > rangeProcessor =
                (from, to) => processor.Process(log, "戦果.csv", from, to, false);

            PAssert.That(
                () => rangeProcessor(DateTime.MinValue, DateTime.MaxValue).SequenceEqual(new[]
            {
                "[\"2018-09-09 23:58:35\",\"66023314\",\"0\"]",
                ",\n[\"2018-09-10 08:08:31\",\"66023314\",\"0\"]",
                ",\n[\"2018-09-10 11:03:01\",\"66024154\",\"0\"]"
            }));
            PAssert.That(
                () => rangeProcessor(DateTime.MinValue, new DateTime(2018, 9, 10)).SequenceEqual(new[]
                                                                                                 { "[\"2018-09-09 23:58:35\",\"66023314\",\"0\"]" }
                                                                                                 ));
            PAssert.That(
                () => rangeProcessor(new DateTime(2018, 9, 10), DateTime.MaxValue).SequenceEqual(new[]
            {
                "[\"2018-09-10 08:08:31\",\"66023314\",\"0\"]",
                ",\n[\"2018-09-10 11:03:01\",\"66024154\",\"0\"]"
            }));
            PAssert.That(
                () => rangeProcessor(new DateTime(2018, 9, 10), new DateTime(2018, 9, 10, 11, 0, 0)).SequenceEqual(new[]
            {
                "[\"2018-09-10 08:08:31\",\"66023314\",\"0\"]"
            }));
        }
Esempio n. 2
0
 private void ProcessFile()
 {
     try
     {
         //Give runtime 10 seconds to create .mlpd
         for (int i = 0; i < 100; i++)
         {
             if (File.Exists(Options.MlpdOutputPath))
             {
                 break;
             }
             Thread.Sleep(100);
         }
         using (var fs = new FileStream(Options.MlpdOutputPath, FileMode.Open, FileAccess.Read, FileShare.ReadWrite))
             using (var logStream = new NeverEndingLogStream(fs, cts.Token))
             {
                 processor = new LogProcessor(logStream, null, visitor);
                 processor.Process(cts.Token);
             }
     }
     catch (OperationCanceledException) { }
     catch (Exception ex)
     {
         Console.WriteLine(ex);
     }
 }
        public void ProcessFile()
        {
            int retries = 0;

retryOpeningLogfile:
            retries++;
            if (retries > 1)
            {
                if (retries == 4)
                {
                    if (!File.Exists(fileToProcess))
                    {
                        ReportUserError("File doesn't exist.");
                    }
                    else if (new FileInfo(fileToProcess).Length == 0)
                    {
                        ReportUserError("File is empty.");
                    }
                    else
                    {
                        ReportUserError("Failed to open/read file.");
                    }
                }
                Thread.Sleep(500);
            }
            var header = ReadHeader(fileToProcess);

            if (header == null)
            {
                goto retryOpeningLogfile;
            }
            TcpPort = header.Port;
            var cancellationToken = cts.Token;

            try {
                using (fileStream = new FileStream(fileToProcess, FileMode.Open, FileAccess.Read, FileShare.Read)) {
                    var processor = new LogProcessor(fileStream, new KrofilerLogEventVisitor(this));
                    processor.Process(cancellation, runner != null);
                }
                if (cancellation.IsCancellationRequested)
                {
                    completionSource.SetCanceled();
                }
                else
                {
                    completionSource.SetResult(true);
                }
            } catch (Exception e) {
                if (cancellation.IsCancellationRequested)
                {
                    completionSource.SetCanceled();
                }
                else
                {
                    completionSource.SetException(e);
                }
            }

            Finished?.Invoke(this);
        }
Esempio n. 4
0
 public void AddIfMatched(FilterLog log)
 {
     if (LogProcessor.IsLogForEvent(log))
     {
         MatchedLogs.Add(log);
     }
 }
Esempio n. 5
0
        private static void MeasureTimes(string filename, EVTCParser parser, LogProcessor processor, GW2ApiData apiData, TextWriter outputWriter)
        {
            var stopwatch = Stopwatch.StartNew();
            var log       = parser.ParseLog(filename);

            var parsedTime = stopwatch.Elapsed;

            stopwatch.Restart();
            var processedLog = processor.ProcessLog(log);

            var processedTime = stopwatch.Elapsed;

            stopwatch.Restart();
            var analyzer = new LogAnalyzer(processedLog, apiData);
            var result   = analyzer.GetResult();
            var duration = analyzer.GetEncounterDuration();
            var mode     = analyzer.GetMode();

            var statisticsTime = stopwatch.Elapsed;

            var totalTime = parsedTime + processedTime + statisticsTime;

            outputWriter.WriteLine(
                $"{filename},{parsedTime.TotalMilliseconds},{processedTime.TotalMilliseconds},{statisticsTime.TotalMilliseconds},{totalTime.TotalMilliseconds}");
            outputWriter.Flush();
        }
Esempio n. 6
0
        /// <summary>
        /// Logs the specified log entry.
        /// </summary>
        /// <param name="logEntry">The log entry to log.</param>
        /// <param name="callerMemberName">The method or property name of the caller.</param>
        /// <param name="callerFilePath">The path of the source file that contains the caller.</param>
        /// <param name="callerLineNumber">The line number in the source file at which this method is called.</param>
        public void Log(
            LogEntry logEntry,
            [CallerMemberName] string callerMemberName = null,
            [CallerFilePath] string callerFilePath     = null,
            [CallerLineNumber] int callerLineNumber    = 0)
        {
            if (logEntry == null)
            {
                throw new ArgumentNullException(nameof(logEntry));
            }
            if (_isDisposed)
            {
                throw new ObjectDisposedException("Cannot log to a disposed Logger.");
            }
            if (LogProcessor.IsDisposed)
            {
                throw new ObjectDisposedException("Cannot log to a Logger with a disposed LogProcessor.");
            }

            if (!_canProcessLogs || logEntry.Level < Level)
            {
                return;
            }

            logEntry.CallerInfo = $"{callerFilePath}:{callerMemberName}({callerLineNumber})";

            LogProcessor.ProcessLogEntry(this, logEntry);
        }
Esempio n. 7
0
        private void Dispose(bool disposing)
        {
            if (_isDisposed)
            {
                return;
            }

            lock (this)
            {
                if (_isDisposed)
                {
                    return;
                }

                _isDisposed = true;

                if (disposing)
                {
                    GC.SuppressFinalize(this);
                }

                if (_disposeLogProcessor)
                {
                    LogProcessor.Dispose();
                }

                var logProviders = LogProviders?.GetEnumerator();
                while (logProviders != null && logProviders.MoveNext())
                {
                    (logProviders.Current as IDisposable)?.Dispose();
                }
            }
        }
Esempio n. 8
0
        public Loader(ParameterConfiguration config)
        {
            List <FileInfo> filelist = new List <FileInfo>();

            this.config = config;

            processor = new LogProcessor(filelist, config.skipDecisions, config.checkToConsider);
        }
Esempio n. 9
0
        public TagConfirmation[] UploadTags(String nickname, String password, TagUpdate tags)
        {
            if (String.IsNullOrEmpty(nickname))
            {
                Log.Logger("UpdateTags: nickname is null or an empty string.", Identifier);
                throw new ArgumentNullException("nickname");
            }

            if (String.IsNullOrEmpty(password))
            {
                Log.Logger("UpdateTags: password is null or an empty string.", Identifier);
                throw new ArgumentNullException("password");
            }

            if (tags == null)
            {
                Log.Logger("UpdateTags: tags is null.", Identifier);
                throw new ArgumentNullException("tags");
            }

            Log.Logger(String.Format("UpdateTags: nickname = \"{0}\".", nickname), Identifier);
            Log.Logger(String.Format("UpdateTags: password = \"{0}\".", password), Identifier);
            Log.Logger(String.Format("UpdateTags: tags.DeviceTagID.Length = {0}.", tags.DeviceTagID.Length));
            Log.Logger(String.Format("UpdateTags: tags.TagValidationString = {0}.", tags.TagValidationString.Length));
            Log.Logger(String.Format("UpdateTags: tags.DeviceTagID = {0}.", LogProcessor.ArrayToString(tags.DeviceTagID)), Identifier);
            Log.Logger(String.Format("UpdateTags: tags.TagValidationString = {0}.", LogProcessor.ArrayToString(tags.TagValidationString)), Identifier);

            var member            = Member.GetMemberViaNicknamePassword(nickname, password);
            var confirmationArray = new TagConfirmation[tags.CheckArraylength()];

            for (var i = 0; i < tags.CheckArraylength(); i++)
            {
                var deviceTagID = tags.DeviceTagID[i];
                // Device tag table needs to be added and this needs to be hooked up.
                var friendMember      = Member.GetMemberAndDeviceByDeviceTagID(deviceTagID);
                var confirmedByServer = false;

                if (friendMember != null)
                {
                    var friendTag = new FriendTag()
                    {
                        FirstMemberID  = member.MemberID,
                        SecondMemberID = friendMember.MemberID,
                        TaggedDT       = DateTime.Now,
                        CreatedDT      = DateTime.Now
                    };

                    friendTag.SaveWithFriendRequest();
                    confirmedByServer = true;
                    FriendRequest.CreateBluetoothFriendRequest(member.MemberID, friendMember.MemberID);
                }

                confirmationArray[i] = new TagConfirmation(deviceTagID, confirmedByServer);
            }

            return(confirmationArray);
        }
        public void IsLogForEvent_WhenTheEventMatchesReturnsTrue()
        {
            EventLog <TestData.Contracts.StandardContract.TransferEvent>[] logsProcessed = null;
            var processor = new LogProcessor <TestData.Contracts.StandardContract.TransferEvent>((logs) => { logsProcessed = logs.ToArray(); return(Task.CompletedTask); });

            var transferEvent  = TestData.Contracts.StandardContract.SampleTransferLog();
            var nonTransferLog = new FilterLog();

            Assert.True(processor.IsLogForEvent(transferEvent));
            Assert.False(processor.IsLogForEvent(nonTransferLog));
        }
Esempio n. 11
0
        public void MaterialLogInNumberType()
        {
            var processor = new LogProcessor();
            var log       = "2018-09-10 20:36:34,294892,296784,259518,294588,2484,2975,2550,3";

            var result = processor.Process(new[] { log }, "資材ログ.csv", DateTime.MinValue, DateTime.MaxValue, true)
                         .ToArray();

            PAssert.That(() => result.Length == 1, "現在値の出力なし");
            PAssert.That(() => result[0] == "[1536579394000,294892,296784,259518,294588,2484,2975,2550,3]");
        }
Esempio n. 12
0
        protected override Log GetLog()
        {
            if (processedLog == null)
            {
                var parser    = new EVTCParser();
                var processor = new LogProcessor();
                var parsedLog = parser.ParseLog(filename);
                processedLog = processor.ProcessLog(parsedLog);
            }

            return(processedLog);
        }
        public static void ExecuteStrategy()
        {
            var logFileReader    = new Strategy.LogFileReader();
            var fileLogProcessor = new LogProcessor(logFileReader.Read);

            fileLogProcessor.ProcessLogs();
            fileLogProcessor.Logs.ForEach(Console.WriteLine);

            var windowsEventLogReader     = new WindowsEventLogReader();
            var windowsEventsLogProcessor = new LogProcessor(windowsEventLogReader.Read);

            windowsEventsLogProcessor.ProcessLogs();
            windowsEventsLogProcessor.Logs.ForEach(Console.WriteLine);
        }
Esempio n. 14
0
        public RunDatabaseUpdateTask(string hostname, string databaseName, string updatePackageLocation, LogProcessor logProcessor, string useUnzipedFolderPath = null, string connectionString = null, string folderName = null)
        {
            if (!Directory.Exists(AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + "Logs"))
            {
                Directory.CreateDirectory(AppDomain.CurrentDomain.BaseDirectory + Path.DirectorySeparatorChar + "Logs");
            }
            _logProcessor = logProcessor;
            _hostName     = hostname;

            _databaseName           = databaseName;
            _updatePackageLocation  = updatePackageLocation;
            _useUnzipedFolderPath   = useUnzipedFolderPath;
            _customConnectionString = connectionString;
            _databaseFolderName     = folderName ?? databaseName;
        }
Esempio n. 15
0
        static void Main()
        {
            string filename = "example.zevtc";

            var parser    = new EVTCParser();               // Used to read a log file and get raw data out of it
            var processor = new LogProcessor();             // Used to process the raw data

            // The parsed log contains raw data from the EVTC file
            ParsedLog parsedLog = parser.ParseLog(filename);

            // The log after processing the raw data into structured events and agents.
            Log log = processor.ProcessLog(parsedLog);

            // At this point, we can do anything with the processed data, and use the LogAnalyzer
            // for easy access to most common results with caching.
            var analyzer = new LogAnalyzer(log);

            Encounter encounter = analyzer.GetEncounter();

            // Encounter names are available for some languages, we use the target name if it's not.
            if (EncounterNames.TryGetEncounterNameForLanguage(GameLanguage.English, encounter, out string name))
            {
                Console.WriteLine($"Encounter: {name}");
            }
            else
            {
                Console.WriteLine($"Encounter: {log.MainTarget?.Name ?? "unknown target"}");
            }

            Console.WriteLine($"Result: {analyzer.GetResult()}");
            Console.WriteLine($"Mode: {analyzer.GetMode()}");
            Console.WriteLine($"Duration: {analyzer.GetEncounterDuration()}");

            // The processed log allows easy access to data about agents
            foreach (var player in log.Agents.OfType <Player>())
            {
                Console.WriteLine($"{player.Name} - {player.AccountName} - {player.Profession} - {player.EliteSpecialization}");
            }

            // Events may be accessed as well
            foreach (var deadEvent in log.Events.OfType <AgentDeadEvent>())
            {
                if (deadEvent.Agent is Player player)
                {
                    Console.WriteLine($"{player.Name} died at {deadEvent.Time}.");
                }
            }
        }
Esempio n. 16
0
        public void EnseiLog()
        {
            var processor = new LogProcessor();
            var log       = new[]
            {
                "2018-09-10 17:45:09,大成功,北方鼠輸送作戦,589,498,0,0,0,0,0",
                "2018-09-10 17:53:34,成功,長距離練習航海,0,117,34,0,0,1,0"
            };
            var result = processor.Process(log, "遠征報告書.csv", DateTime.MinValue, DateTime.MaxValue, false);

            PAssert.That(() => result.SequenceEqual(new[]
            {
                "[\"2018-09-10 17:45:09\",\"大成功\",\"北方鼠輸送作戦\",\"589\",\"498\",\"0\",\"0\",\"0\",\"0\",\"0\",\"0\"]",
                ",\n[\"2018-09-10 17:53:34\",\"成功\",\"長距離練習航海\",\"0\",\"117\",\"34\",\"0\",\"0\",\"1\",\"0\",\"0\"]"
            }));
        }
Esempio n. 17
0
        public static void ExtractMessagesFromFiles(IEnumerable <ACSLogFile> mLogsToProcess,
                                                    string directory, List <Message> messages, UIFilterSettings settUIFilters,
                                                    bool doCreateSeparateMessageLists, Action <string> uiSyncAction)
        {
            foreach (var logFile in mLogsToProcess)
            {
                settUIFilters.FilterRTSMMessages = (logFile.SourceType == SourceType.RTSM_in_thslog);

                var processorSettings = new LogProcessorSettings()
                {
                    LogFile = logFile, UIFS = settUIFilters, CreateSeparateMessageLists = doCreateSeparateMessageLists
                };

                var    lp                = new LogProcessor();
                string resultPath        = string.Empty;
                int    prevMessagesCount = messages.Count;
                try
                {
                    resultPath = lp.ProcessLogFile(directory, processorSettings, m => messages.Add(m));
                    var messagesProcessedCount = messages.Count - prevMessagesCount;
                    var updateStatusText       =
                        string.Format("Processed file {0}.{2}{1}{2}",
                                      logFile.LogFileName,
                                      messagesProcessedCount == 0
                            ? string.Format("No {0} messages found.", logFile.SourceType)
                            : string.Format("Parsed {0} {1} message(s).", messagesProcessedCount, logFile.SourceType),
                                      Environment.NewLine);

                    if (processorSettings.CreateSeparateMessageLists)
                    {
                        updateStatusText += string.Format("Generated file:{0}{1}{0}", Environment.NewLine, resultPath);
                    }

                    updateStatusText += Environment.NewLine;
                    uiSyncAction(updateStatusText);
                }
                catch (Exception ex)
                {
                    throw new ApplicationException(
                              string.Format("An error occured when processing file{0}{1}{2}{3}", logFile.LogFileName, Environment.NewLine, "Error:", ex)
                              , ex);
                }

                System.GC.Collect();
                GC.WaitForPendingFinalizers();
            }
        }
Esempio n. 18
0
        static LogStreamHeader TryReadHeader(string mldpFilePath)
        {
            try {
                using (var s = File.OpenRead(mldpFilePath)) {
                    var visitor   = new HeadReaderLogEventVisitor();
                    var processor = new LogProcessor(s, visitor, null);

                    try {
                        processor.Process(visitor.TokenSource.Token);
                    } catch {
                    }
                    return(processor.StreamHeader);
                }
            } catch {
                return(null);
            }
        }
Esempio n. 19
0
        public void BattleLogWithComma()
        {
            var processor = new LogProcessor();
            var log       = new[]
            {
                "2020-09-27 19:49:04,ペナン島沖,4,,S,同航戦,単縦陣,梯形陣,深海5,500t級軽巡洋艦,駆逐艦,神風," +
                "羽黒改二(Lv159),64/64,足柄改二(Lv159),60/63,神風改(Lv99),23/23,島風改(Lv158),41/41,Gotland andra(Lv136),53/53,,," +
                "軽巡ホ級(flagship),0/53,駆逐ロ級後期型,0/37,駆逐ロ級後期型,0/37,,,,,,,9,0,制空権確保,7-3",
            };
            var result = processor.Process(log, "海戦・ドロップ報告書.csv", DateTime.MinValue, DateTime.MaxValue, false);

            PAssert.That(() =>
                         result.First() ==
                         "[\"2020-09-27 19:49:04\",\"ペナン島沖\",\"4\",\"\",\"S\",\"同航戦\",\"単縦陣\",\"梯形陣\",\"深海5,500t級軽巡洋艦\",\"駆逐艦\",\"神風\"," +
                         "\"羽黒改二(Lv159)\",\"64/64\",\"足柄改二(Lv159)\",\"60/63\",\"神風改(Lv99)\",\"23/23\",\"島風改(Lv158)\",\"41/41\",\"Gotland andra(Lv136)\",\"53/53\",\"\",\"\"," +
                         "\"軽巡ホ級(flagship)\",\"0/53\",\"駆逐ロ級後期型\",\"0/37\",\"駆逐ロ級後期型\",\"0/37\",\"\",\"\",\"\",\"\",\"\",\"\",\"9\",\"0\",\"確保\",\"\",\"\",\"7-3\"]");
        }
Esempio n. 20
0
        public void BattleLog()
        {
            var processor = new LogProcessor(null, new Dictionary <string, string> {
                { "鎮守府正面海域", "1-1" }
            });
            var log = new[]
            {
                "2018-09-08 11:28:01,鎮守府正面海域,3,ボス,A,同航戦,単縦陣,単縦陣,敵主力艦隊,駆逐艦,雷,浜波改(Lv78),32/32,涼風(Lv10),3/16,,,,,,,,,軽巡ホ級,0/33,駆逐イ級,0/20,駆逐イ級,7/20,,,,,,,0,0,"
            };
            var result = processor.Process(log, "海戦・ドロップ報告書.csv", DateTime.MinValue, DateTime.MaxValue, false);

            PAssert.That(() =>
                         result.First() ==
                         "[\"2018-09-08 11:28:01\",\"鎮守府正面海域\",\"3\",\"ボス\",\"A\",\"同航戦\",\"単縦陣\",\"単縦陣\",\"敵主力艦隊\",\"駆逐艦\",\"雷\"," +
                         "\"浜波改(Lv78)\",\"32/32\",\"涼風(Lv10)\",\"3/16\",\"\",\"\",\"\",\"\",\"\",\"\",\"\",\"\"," +
                         "\"軽巡ホ級\",\"0/33\",\"駆逐イ級\",\"0/20\",\"駆逐イ級\",\"7/20\",\"\",\"\",\"\",\"\",\"\",\"\",\"0\",\"0\",\"\",\"涼風(Lv10)\",\"\",\"1-1\"]");
        }
Esempio n. 21
0
        public void TruncatedLog()
        {
            var processor = new LogProcessor();
            var logs      = new[]
            {
                "2014-12-15 23:10:34,29734,29855,28016,41440,1407,1529,2151,13",
                "2014-12-15 23:13:29,29709,29819,28019,41440,1407,1529,21",
                "2014-12-15 23:16:06,29710,29819,28018,41440,1407,1529,2151,13"
            };
            var result = processor.Process(logs, "資材ログ", DateTime.MinValue, DateTime.MaxValue, true);

            PAssert.That(() => result.SequenceEqual(new[]
            {
                "[1418652634000,29734,29855,28016,41440,1407,1529,2151,13]",
                ",\n[1418652966000,29710,29819,28018,41440,1407,1529,2151,13]"
            }));
        }
Esempio n. 22
0
        public void DateFormat()
        {
            var processor = new LogProcessor();

            var body     = ",大型艦建造,まるゆ,潜水艦,1500,1500,2000,1000,1,0,瑞鶴改二甲(163),120";
            var expected =
                ",\"大型艦建造\",\"まるゆ\",\"潜水艦\",\"1500\",\"1500\",\"2000\",\"1000\",\"1\",\"0\",\"瑞鶴改二甲(163)\",\"120\"]";

            Func <string, string> dateProcessor =
                date => processor.Process(new[] { date + body }, "建造報告書", DateTime.MinValue, DateTime.MaxValue, false)
                .First();
            var era = "30-09-10 20:13:39";

            PAssert.That(() => "[\"2018-09-10 20:13:39\"" + expected == dateProcessor(era), "和暦を西暦に直す");
            var excel = "2018/9/10 20:13";

            PAssert.That(() => "[\"2018-09-10 20:13:00\"" + expected == dateProcessor(excel), "Excelの形式から変換する");
        }
Esempio n. 23
0
 protected void ProcessLine(string line, bool eof)
 {
     if (line != null)
     {
         try
         {
             var entries = LogProcessor.ProcessLine(line, eof);
             if (entries.Count > 0)
             {
                 GroupBox.Publish(entries);
             }
         }
         catch (Exception ex)
         {
             Log.Write(ex);
         }
     }
 }
        public async Task Process_InvokesCallback()
        {
            EventLog <TestData.Contracts.StandardContract.TransferEvent>[] logsProcessed = null;
            var processor = new LogProcessor <TestData.Contracts.StandardContract.TransferEvent>((logs) => { logsProcessed = logs.ToArray(); return(Task.CompletedTask); });

            var logsToProcess = new[] {
                TestData.Contracts.StandardContract.SampleTransferLog(),
                TestData.Contracts.StandardContract.SampleTransferLog()
            };

            await processor.ProcessLogsAsync(logsToProcess);

            Assert.Equal(logsToProcess.Length, logsProcessed.Length);
            foreach (var processedLog in logsProcessed)
            {
                Assert.IsType <EventLog <TestData.Contracts.StandardContract.TransferEvent> >(processedLog);
            }
        }
Esempio n. 25
0
        protected override Log GetLog()
        {
            byte[] bytes;
            using (var memoryStream = new MemoryStream())
            {
                stream.CopyTo(memoryStream);
                bytes = memoryStream.ToArray();
            }

            if (processedLog == null)
            {
                var parser    = new EVTCParser();
                var processor = new LogProcessor();
                var parsedLog = parser.ParseLog(bytes);
                processedLog = processor.ProcessLog(parsedLog);
            }

            return(processedLog);
        }
Esempio n. 26
0
        public override string ToString()
        {
            string t;
            bool   isBin = Term.Args.Length == 2;

            if (Negated && Term.Name == "or")
            {
                Negated = false;
                Term    = new Term("And", LogProcessor.NegateAll(Term.Args));
            }

            if (isBin)
            {
                if (Term.Name.Any(char.IsLetterOrDigit))
                {
                    isBin = false;
                }
            }

            if (Term == null)
            {
                t = "(nil)";
            }
            else if (isBin)
            {
                var content0 = new InfoPanelContent();
                var content1 = new InfoPanelContent();
                Term.Args[0].PrettyPrint(content0, PrettyPrintFormat.DefaultPrettyPrintFormat());
                Term.Args[1].PrettyPrint(content1, PrettyPrintFormat.DefaultPrettyPrintFormat());
                content0.finalize();
                content1.finalize();
                t = $"{content0}  {Term.Name}  {content1}";
            }
            else
            {
                var content = new InfoPanelContent();
                Term.PrettyPrint(content, PrettyPrintFormat.DefaultPrettyPrintFormat());
                content.finalize();
                t = content.ToString();
            }
            return(string.Format("{0}p{1}  {3}{2}", Negated ? "~" : "", Id, t, Implied == null ? "" : "[+" + Implied.Length + "] "));
        }
Esempio n. 27
0
        private static void ProcessLog()
        {
            const string path = @"C:\Code\Test.log";

            var processor = new LogProcessor(path);

            try
            {
                foreach (var result in processor.CountTask.Result.OrderByDescending(x => x.Value))
                {
                    Console.WriteLine(result);
                }
            }
            catch (Exception x)
            {
                Console.WriteLine(x);
            }

            Console.ReadLine();
        }
Esempio n. 28
0
        private static void ProcessLog()
        {
            const string path = @"C:\Code\Test.log";

            var processor = new LogProcessor(path);

            try
            {
                foreach (var result in processor.CountTask.Result.OrderByDescending(x => x.Value))
                {
                    Console.WriteLine(result);
                }
            }
            catch (Exception x)
            {
                Console.WriteLine(x);
            }

            Console.ReadLine();
        }
Esempio n. 29
0
        public void MaterialLogWithCurrentRecord()
        {
            var processor = new LogProcessor(new[]
            {
                new MaterialCount {
                    Now = 2001
                }, new MaterialCount {
                    Now = 2002
                }, new MaterialCount {
                    Now = 2003
                },
                new MaterialCount {
                    Now = 2004
                },
                new MaterialCount {
                    Now = 201
                }, new MaterialCount {
                    Now = 202
                }, new MaterialCount {
                    Now = 203
                },
                new MaterialCount {
                    Now = 100
                }
            });
            var now = new DateTime(2018, 1, 1);
            var log = "2018-09-10 20:36:34,294892,296784,259518,294588,2484,2975,2550,3";

            var result = processor.Process(new[] { log }, "資材ログ.csv", DateTime.MinValue, DateTime.MaxValue, false, now)
                         .ToArray();

            PAssert.That(() =>
                         result[0] ==
                         "[\"2018-09-10 20:36:34\",\"294892\",\"296784\",\"259518\",\"294588\",\"2484\",\"2975\",\"2550\",\"3\"]");
            var date = Logger.FormatDateTime(now);

            PAssert.That(() =>
                         result[1] ==
                         $",\n[\"{date}\",\"2001\",\"2002\",\"2003\",\"2004\",\"201\",\"202\",\"203\",\"100\"]", "現在値");
        }
Esempio n. 30
0
        private static void MeasureTimes(string filename, EVTCParser parser, LogProcessor processor, LogAnalyser analyser, GW2ApiData apiData, TextWriter outputWriter)
        {
            var stopwatch = Stopwatch.StartNew();
            var log       = parser.ParseLog(filename);

            var parsedTime = stopwatch.Elapsed;

            stopwatch.Restart();
            var processedLog = processor.GetProcessedLog(log);

            var processedTime = stopwatch.Elapsed;

            stopwatch.Restart();
            var statistics = analyser.GetStatistics(processedLog, apiData);

            var statisticsTime = stopwatch.Elapsed;

            var totalTime = parsedTime + processedTime + statisticsTime;

            outputWriter.WriteLine(
                $"{filename},{parsedTime.TotalMilliseconds},{processedTime.TotalMilliseconds},{statisticsTime.TotalMilliseconds},{totalTime.TotalMilliseconds}");
            outputWriter.Flush();
        }
Esempio n. 31
0
 public LogAnalytics(EVTCParser parser, LogProcessor processor, Func <Log, LogAnalyzer> analyzerFactory)
 {
     Parser          = parser ?? throw new ArgumentNullException(nameof(parser));
     Processor       = processor ?? throw new ArgumentNullException(nameof(processor));
     AnalyzerFactory = analyzerFactory ?? throw new ArgumentNullException(nameof(analyzerFactory));
 }