public void Initialize()

in TeamCity.MSBuild.Logger/NodeLogger.cs [100:190]


        public void Initialize(IEventSource eventSource, int nodeCount)
        {
            _diagnostics.Send(() => $"Initialize({eventSource}, {nodeCount})");
            _parameters.Verbosity = Verbosity;
            if (Parameters != null)
            {
                if (!_parametersParser.TryParse(Parameters, _parameters, out var error))
                {
                    throw new LoggerException(error);
                }
            }

            _context.Initialize(
                nodeCount,
                SkipProjectStartedText,
                _parameters);

            if (nodeCount == 1 && _parameters.ShowEventId.HasValue)
            {
                _parameters.ShowEventId = false;
            }

            if (_parameters.Debug)
            {
                try
                {
                    _logWriter.SetColor(Color.Warning);
                    _logWriter.Write($"\nWaiting for debugger in process: [{Process.GetCurrentProcess().Id}] \"{Process.GetCurrentProcess().ProcessName}\"\n");
                }
                finally
                {
                    _logWriter.ResetColor();
                }

                while (!Debugger.IsAttached)
                {
                    Thread.Sleep(100);
                }

                Debugger.Break();
            }

            if (_context.IsVerbosityAtLeast(LoggerVerbosity.Diagnostic))
            {
                _parameters.ShowPerfSummary = true;
            }

            _parameters.ShowTargetOutputs = _environment.TargetOutputLogging;
            if (!_parameters.ShowSummary.HasValue && _context.IsVerbosityAtLeast(LoggerVerbosity.Normal))
            {
                _parameters.ShowSummary = true;
            }

            if (_parameters.ShowOnlyWarnings || _parameters.ShowOnlyErrors)
            {
                if (!_parameters.ShowSummary.HasValue)
                {
                    _parameters.ShowSummary = false;
                }

                _parameters.ShowPerfSummary = false;
            }

            if (_context.IsVerbosityAtLeast(LoggerVerbosity.Diagnostic))
            {
                try
                {
                    _logWriter.SetColor(Color.Details);
                    _logWriter.Write($"Logger parameters: {_parameters}\n");
                }
                finally
                {
                    _logWriter.ResetColor();
                }
            }

            eventSource.BuildStarted += (sender, e) => Handle(_buildStartedEventHandler, e);
            eventSource.BuildFinished += (sender, e) => Handle(_buildFinishedHandler, e);
            eventSource.ProjectStarted += (sender, e) => Handle(_projectStartedHandler, e);
            eventSource.ProjectFinished += (sender, e) => Handle(_projectFinishedHandler, e);
            eventSource.TargetStarted += (sender, e) => Handle(_targetStartedHandler, e);
            eventSource.TargetFinished += (sender, e) => Handle(_targetFinishedHandler, e);
            eventSource.TaskStarted += (sender, e) => Handle(_taskStartedHandler, e);
            eventSource.TaskFinished += (sender, e) => Handle(_taskFinishedHandler, e);
            eventSource.ErrorRaised += (sender, e) => Handle(_errorHandler, e);
            eventSource.WarningRaised += (sender, e) => Handle(_warningHandler, e);
            eventSource.MessageRaised += (sender, e) => Handle(_messageHandler, e);
            eventSource.CustomEventRaised += (sender, e) => Handle(_customEventHandler, e);

            _diagnostics.Send(() => _parameters.ToString());
        }