public void Handle()

in TeamCity.MSBuild.Logger/EventHandlers/MessageHandler.cs [28:90]


        public void Handle(BuildMessageEventArgs e)
        {
            if (e == null) throw new ArgumentNullException(nameof(e));
            if (_context.Parameters.ShowOnlyErrors || _context.Parameters.ShowOnlyWarnings)
            {
                return;
            }

            if (e == null) throw new ArgumentNullException(nameof(e));
            if (e.BuildEventContext == null) throw new ArgumentException(nameof(e));
            bool showMessages;
            var lightenText = false;
            if (e is TaskCommandLineEventArgs)
            {
                if (_context.Parameters.ShowCommandLine != true && !_context.IsVerbosityAtLeast(LoggerVerbosity.Normal))
                {
                    return;
                }

                showMessages = true;
            }
            else
            {
                switch (e.Importance)
                {
                    case MessageImportance.High:
                        showMessages = _context.IsVerbosityAtLeast(LoggerVerbosity.Minimal);
                        break;
                    case MessageImportance.Normal:
                        showMessages = _context.IsVerbosityAtLeast(LoggerVerbosity.Normal);
                        lightenText = true;
                        break;
                    case MessageImportance.Low:
                        showMessages = _context.IsVerbosityAtLeast(LoggerVerbosity.Detailed);
                        lightenText = true;
                        break;
                    default:
                        throw new InvalidOperationException("Impossible");
                }
            }

            if (!showMessages)
            {
                return;
            }

            if (_context.HasBuildStarted && e.BuildEventContext.ProjectContextId != -2 && _buildEventManager.GetProjectStartedEvent(e.BuildEventContext) == null && _context.IsVerbosityAtLeast(LoggerVerbosity.Normal))
            {
                if (!_context.DeferredMessages.TryGetValue(e.BuildEventContext, out var messageEventArgsList))
                {
                    messageEventArgsList = new List<BuildMessageEventArgs>();
                    _context.DeferredMessages.Add(e.BuildEventContext, messageEventArgsList);
                }
                
                messageEventArgsList.Add(e);
            }
            else
            {
                _deferredMessageWriter.DisplayDeferredStartedEvents(e.BuildEventContext);
                _messageWriter.PrintMessage(e, lightenText);
                _deferredMessageWriter.ShownBuildEventContext(e.BuildEventContext);
            }
        }