in TeamCity.MSBuild.Logger/TeamCityHierarchicalMessageWriter.cs [246:275]
public void Write([NotNull] string message, MessageState messageState)
{
if (message == null) throw new ArgumentNullException(nameof(message));
// ReSharper disable once SwitchStatementHandlesSomeKnownEnumValuesWithDefault
switch (messageState)
{
case MessageState.Warning:
_writer.WriteWarning(message);
break;
case MessageState.Error:
if ( _eventContext.TryGetEvent(out var buildEventManager)
&& buildEventManager is BuildErrorEventArgs buildErrorEventArgs)
{
var errorId = $"{GetProperty(buildErrorEventArgs.SenderName, string.Empty)}{GetProperty(buildErrorEventArgs.Code)},{buildErrorEventArgs.LineNumber},{buildErrorEventArgs.ColumnNumber}{GetProperty(GetFileName(buildErrorEventArgs.ProjectFile))}{GetProperty(GetFileName(buildErrorEventArgs.File))}";
errorId = errorId.Length >= 60 ? errorId.Substring(0, 59) : errorId;
_writer.WriteBuildProblem(errorId, message);
}
else
{
_writer.WriteError(message);
}
break;
default:
_writer.WriteMessage(message);
break;
}
}