コード例 #1
0
        private string[] GetMessageLines(
            CompetitionState competitionState,
            Func <IMessage, bool> severityFilter,
            bool fromAllRuns)
        {
            var result = from message in competitionState.GetMessages()
                         where severityFilter(message) && ShouldReport(message, competitionState.RunNumber, fromAllRuns)
                         orderby message.RunNumber, message.RunMessageNumber
                select $"    * Run #{message.RunNumber}: {message.MessageText}";

            return(result.ToArray());
        }
コード例 #2
0
ファイル: CompetitionRunnerBase.cs プロジェクト: ili/CodeJam
        private void ProcessRunComplete(
            [NotNull] CompetitionState competitionState)
        {
            var logger  = competitionState.Logger;
            var summary = competitionState.LastRunSummary;

            if (logger == null || summary == null)
            {
                return;
            }

            logger.WriteVerbose($"{competitionState.BenchmarkType.Name} completed.");

            if (competitionState.Options.RunOptions.DetailedLogging)
            {
                var messages = competitionState.GetMessages();

                if (messages.Any())
                {
                    logger.WriteSeparatorLine("All messages");
                    foreach (var message in messages)
                    {
                        logger.LogMessage(message);
                    }
                }
                else
                {
                    logger.WriteSeparatorLine();
                    logger.WriteVerbose("No messages in run.");
                }

                logger.WriteLine();
            }
            else
            {
                using (FilteringLogger.BeginLogImportant(summary.Config))
                {
                    var summaryLogger = DumpSummaryToHostLogger
                                                ? logger
                                                : new CompositeLogger(
                        summary.Config
                        .GetLoggers()
                        .Where(l => !(l is HostLogger))
                        .ToArray());

                    // Dumping the benchmark summary
                    summaryLogger.WriteSeparatorLine("Summary");
                    MarkdownExporter.Console.ExportToLog(summary, summaryLogger);

                    logger.WriteLine();
                }
            }
        }
コード例 #3
0
        private void ProcessRunComplete(
            [NotNull] ICompetitionConfig competitionConfig,
            [NotNull] CompetitionState competitionState)
        {
            var logger  = competitionState.Logger;
            var summary = competitionState.LastRunSummary;

            if (logger == null)
            {
                return;
            }

            if (competitionConfig.DetailedLogging)
            {
                var messages = competitionState.GetMessages();

                if (messages.Any())
                {
                    logger.WriteSeparatorLine("All messages");
                    foreach (var message in messages)
                    {
                        logger.LogMessage(message);
                    }
                }
                else
                {
                    logger.WriteSeparatorLine();
                    logger.WriteLineInfo("{LogVerbosePrefix} No messages in run.");
                }
            }
            else if (summary != null)
            {
                using (Loggers.HostLogger.BeginLogImportant(summary.Config))
                {
                    var summarylogger = DumpSummaryToHostLogger
                                                ? logger
                                                : new CompositeLogger(
                        summary.Config
                        .GetLoggers()
                        .Where(l => !(l is HostLogger))
                        .ToArray());

                    // Dumping the benchmark results to console
                    summarylogger.WriteSeparatorLine("Summary");
                    MarkdownExporter.Console.ExportToLog(summary, summarylogger);
                }
            }
        }