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());
}