private static string FormatEventMessage()

in TeamCity.MSBuild.Logger/EventFormatter.cs [69:151]


        private static string FormatEventMessage(
            string category,
            string subcategory,
            string message,
            string code,
            string file,
            string projectFile,
            int lineNumber,
            int endLineNumber,
            int columnNumber,
            int endColumnNumber,
            int threadId)
        {
            var sb = new StringBuilder();
            if (string.IsNullOrEmpty(file))
            {
                sb.Append("MSBUILD : ");
            }
            else
            {
                sb.Append("{1}");
                if (lineNumber == 0)
                {
                    sb.Append(" : ");
                }
                else if (columnNumber == 0)
                {
                    sb.Append(endLineNumber == 0 ? "({2}): " : "({2}-{7}): ");
                }
                else if (endLineNumber == 0)
                {
                    sb.Append(endColumnNumber == 0 ? "({2},{3}): " : "({2},{3}-{8}): ");
                }
                else if (endColumnNumber == 0)
                {
                    sb.Append("({2}-{7},{3}): ");
                }
                else
                {
                    sb.Append("({2},{3},{7},{8}): ");
                }
            }

            if (!string.IsNullOrEmpty(subcategory))
            {
                sb.Append("{9} ");
            }

            sb.Append("{4} ");
            sb.Append(code == null ? ": " : "{5}: ");

            if (message != null)
            {
                sb.Append("{6}");
            }

            if (projectFile != null && !string.Equals(projectFile, file))
            {
                sb.Append(" [{10}]");
            }

            if (message == null)
            {
                message = string.Empty;
            }

            var format = sb.ToString();
            var strArray = SplitStringOnNewLines(message);
            var stringBuilder2 = new StringBuilder();
            for (var index = 0; index < strArray.Length; ++index)
            {
                stringBuilder2.Append(string.Format(CultureInfo.CurrentCulture, format, threadId,
                    file, lineNumber, columnNumber, category, code,
                    strArray[index], endLineNumber, endColumnNumber, subcategory,
                    projectFile));

                if (index < strArray.Length - 1)
                {
                    stringBuilder2.AppendLine();
                }
            }
            return stringBuilder2.ToString();
        }