Пример #1
0
        private void ShowPerfSummary()
        {
            _hierarchicalMessageWriter.StartBlock("Performance Summary");

            if (_context.ProjectPerformanceCounters != null)
            {
                _logWriter.SetColor(Color.PerformanceHeader);
                _messageWriter.WriteNewLine();
                _messageWriter.WriteLinePrettyFromResource("ProjectPerformanceSummary");
                _logWriter.SetColor(Color.SummaryInfo);
                _messageWriter.DisplayCounters(_context.ProjectPerformanceCounters);
            }

            if (_context.TargetPerformanceCounters != null)
            {
                _logWriter.SetColor(Color.PerformanceHeader);
                _messageWriter.WriteNewLine();
                _messageWriter.WriteLinePrettyFromResource("TargetPerformanceSummary");
                _logWriter.SetColor(Color.SummaryInfo);
                _messageWriter.DisplayCounters(_context.TargetPerformanceCounters);
            }

            if (_context.TaskPerformanceCounters != null)
            {
                _logWriter.SetColor(Color.PerformanceHeader);
                _messageWriter.WriteNewLine();
                _messageWriter.WriteLinePrettyFromResource("TaskPerformanceSummary");
                _logWriter.SetColor(Color.SummaryInfo);
                _messageWriter.DisplayCounters(_context.TaskPerformanceCounters);
            }

            _hierarchicalMessageWriter.FinishBlock();
            _logWriter.ResetColor();
        }
Пример #2
0
        private void OutputEnvironment(IDictionary <string, string> environment)
        {
            if (environment == null)
            {
                throw new ArgumentNullException(nameof(environment));
            }
            _logWriter.SetColor(Color.SummaryHeader);
            _hierarchicalMessageWriter.StartBlock("Environment");
            _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("EnvironmentHeader"), true);
            foreach (var keyValuePair in environment)
            {
                _logWriter.SetColor(Color.SummaryInfo);
                _messageWriter.WriteMessageAligned(string.Format(CultureInfo.CurrentCulture, "{0} = {1}", keyValuePair.Key, keyValuePair.Value), false);
            }

            _hierarchicalMessageWriter.FinishBlock();
            _logWriter.ResetColor();
        }
Пример #3
0
        public void DisplayDeferredProjectStartedEvent(BuildEventContext e)
        {
            if (_context.Parameters.ShowOnlyErrors || _context.Parameters.ShowOnlyWarnings || _context.SkipProjectStartedText)
            {
                return;
            }

            var projectStartedEvent = _buildEventManager.GetProjectStartedEvent(e);

            if (projectStartedEvent == null || projectStartedEvent.ShowProjectFinishedEvent)
            {
                return;
            }

            projectStartedEvent.ShowProjectFinishedEvent = true;
            var parentProjectStartedEvent = projectStartedEvent.ParentProjectStartedEvent;

            if (parentProjectStartedEvent != null)
            {
                DisplayDeferredStartedEvents(parentProjectStartedEvent.ProjectBuildEventContext);
            }

            var projectFile       = projectStartedEvent.ProjectFile ?? string.Empty;
            var parentProjectFile = parentProjectStartedEvent?.ProjectFile;
            var targetNames       = projectStartedEvent.TargetNames;
            var nodeId            = projectStartedEvent.ProjectBuildEventContext.NodeId;
            var shortProjectFile  = _pathService.GetFileName(projectFile);

            if (parentProjectFile == null)
            {
                string message;
                string shortName;
                if (string.IsNullOrEmpty(targetNames))
                {
                    message   = _stringService.FormatResourceString("ProjectStartedTopLevelProjectWithDefaultTargets", projectFile, nodeId);
                    shortName = $"Project \"{shortProjectFile}\"";
                }
                else
                {
                    message   = _stringService.FormatResourceString("ProjectStartedTopLevelProjectWithTargetNames", projectFile, nodeId, targetNames);
                    shortName = $"Project \"{shortProjectFile}\": {targetNames}";
                }

                _hierarchicalMessageWriter.StartBlock(shortName);

                _messageWriter.WriteLinePrefix(projectStartedEvent.FullProjectKey, projectStartedEvent.TimeStamp, false);
                _logWriter.SetColor(Color.BuildStage);
                _messageWriter.WriteMessageAligned(message, true);
                _logWriter.ResetColor();
            }
            else
            {
                if (string.IsNullOrEmpty(targetNames))
                {
                    var shortName = $"Project \"{shortProjectFile}\"";
                    _hierarchicalMessageWriter.StartBlock(shortName);

                    _messageWriter.WriteLinePrefix(parentProjectStartedEvent.FullProjectKey, parentProjectStartedEvent.TimeStamp, false);
                    _logWriter.SetColor(Color.BuildStage);
                    _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("ProjectStartedWithDefaultTargetsMultiProc", parentProjectFile, parentProjectStartedEvent.FullProjectKey, projectFile, projectStartedEvent.FullProjectKey, nodeId), true);
                }
                else
                {
                    var shortName = $"Project \"{shortProjectFile}\": {targetNames}";
                    _hierarchicalMessageWriter.StartBlock(shortName);

                    _messageWriter.WriteLinePrefix(parentProjectStartedEvent.FullProjectKey, parentProjectStartedEvent.TimeStamp, false);
                    _logWriter.SetColor(Color.BuildStage);
                    _messageWriter.WriteMessageAligned(_stringService.FormatResourceString("ProjectStartedWithTargetsMultiProc", parentProjectFile, parentProjectStartedEvent.FullProjectKey, projectFile, projectStartedEvent.FullProjectKey, nodeId, targetNames), true);
                }

                _logWriter.ResetColor();
            }

            ShownBuildEventContext(null);
        }