コード例 #1
0
ファイル: SpyLogger.cs プロジェクト: Xarlot/xunit
 private void Log(BuildErrorEventArgs eventArgs)
 {
     if (includeSourceInformation)
         Messages.Add($"ERROR: [FILE {eventArgs.File}][LINE {eventArgs.LineNumber}] {eventArgs.Message}");
     else
         Messages.Add($"ERROR: {eventArgs.Message}");
 }
コード例 #2
0
ファイル: SpyLogger.cs プロジェクト: ansarisamer/xunit
 private void Log(BuildErrorEventArgs eventArgs)
 {
     if (includeSourceInformation)
         Messages.Add(String.Format("ERROR: [FILE {0}][LINE {1}] {2}", eventArgs.File, eventArgs.LineNumber, eventArgs.Message));
     else
         Messages.Add(String.Format("ERROR: {0}", eventArgs.Message));
 }
コード例 #3
0
    void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
    {
        // BuildErrorEventArgs adds LineNumber, ColumnNumber, File, amongst other parameters
        BuildError error = new BuildError() {
            File = e.File,
            Timestamp = e.Timestamp,
            LineNumber = e.LineNumber,
            ColumnNumber = e.ColumnNumber,
            Code = e.Code,
            Message = e.Message,
        };

        Errors.Add(error);
    }
コード例 #4
0
ファイル: MockLogger.cs プロジェクト: zhuweijia/msbuild
        /*
         * Method:  LoggerEventHandler
         *
         * Receives build events and logs them the way we like.
         *
         */
        internal void LoggerEventHandler(object sender, BuildEventArgs eventArgs)
        {
            if (eventArgs is BuildWarningEventArgs)
            {
                BuildWarningEventArgs w = (BuildWarningEventArgs)eventArgs;

                // hack: disregard the MTA warning.
                // need the second condition to pass on ploc builds
                if (w.Code != "MSB4056" && !w.Message.Contains("MSB4056"))
                {
                    _fullLog.AppendFormat("{0}({1},{2}): {3} warning {4}: {5}\r\n",
                                          w.File,
                                          w.LineNumber,
                                          w.ColumnNumber,
                                          w.Subcategory,
                                          w.Code,
                                          w.Message);

                    ++_warningCount;
                    _warnings.Add(w);
                }
            }
            else if (eventArgs is BuildErrorEventArgs)
            {
                BuildErrorEventArgs e = (BuildErrorEventArgs)eventArgs;

                _fullLog.AppendFormat("{0}({1},{2}): {3} error {4}: {5}\r\n",
                                      e.File,
                                      e.LineNumber,
                                      e.ColumnNumber,
                                      e.Subcategory,
                                      e.Code,
                                      e.Message);

                ++_errorCount;
                _errors.Add(e);
            }
            else
            {
                // Log the message unless we are a build finished event and logBuildFinished is set to false.
                bool logMessage = !(eventArgs is BuildFinishedEventArgs) || (eventArgs is BuildFinishedEventArgs && _logBuildFinishedEvent);
                if (logMessage)
                {
                    _fullLog.Append(eventArgs.Message);
                    _fullLog.Append("\r\n");
                }
            }

            if (eventArgs is ExternalProjectStartedEventArgs)
            {
                this.ExternalProjectStartedEvents.Add((ExternalProjectStartedEventArgs)eventArgs);
            }
            else if (eventArgs is ExternalProjectFinishedEventArgs)
            {
                this.ExternalProjectFinishedEvents.Add((ExternalProjectFinishedEventArgs)eventArgs);
            }

            if (eventArgs is ProjectStartedEventArgs)
            {
                this.ProjectStartedEvents.Add((ProjectStartedEventArgs)eventArgs);
            }
            else if (eventArgs is ProjectFinishedEventArgs)
            {
                this.ProjectFinishedEvents.Add((ProjectFinishedEventArgs)eventArgs);
            }
            else if (eventArgs is TargetStartedEventArgs)
            {
                this.TargetStartedEvents.Add((TargetStartedEventArgs)eventArgs);
            }
            else if (eventArgs is TargetFinishedEventArgs)
            {
                this.TargetFinishedEvents.Add((TargetFinishedEventArgs)eventArgs);
            }
            else if (eventArgs is TaskStartedEventArgs)
            {
                this.TaskStartedEvents.Add((TaskStartedEventArgs)eventArgs);
            }
            else if (eventArgs is TaskFinishedEventArgs)
            {
                this.TaskFinishedEvents.Add((TaskFinishedEventArgs)eventArgs);
            }
            else if (eventArgs is BuildMessageEventArgs)
            {
                this.BuildMessageEvents.Add((BuildMessageEventArgs)eventArgs);
            }
            else if (eventArgs is BuildStartedEventArgs)
            {
                this.BuildStartedEvents.Add((BuildStartedEventArgs)eventArgs);
            }
            else if (eventArgs is BuildFinishedEventArgs)
            {
                this.BuildFinishedEvents.Add((BuildFinishedEventArgs)eventArgs);

                if (!AllowTaskCrashes)
                {
                    // We should not have any task crashes. Sometimes a test will validate that their expected error
                    // code appeared, but not realize it then crashed.
                    AssertLogDoesntContain("MSB4018");
                }

                // We should not have any Engine crashes.
                AssertLogDoesntContain("MSB0001");

                // Console.Write in the context of a unit test is very expensive.  A hundred
                // calls to Console.Write can easily take two seconds on a fast machine.  Therefore, only
                // do the Console.Write once at the end of the build.
                Console.Write(FullLog);
            }
        }
コード例 #5
0
 private void ErrorRaised(object sender, BuildErrorEventArgs e) => _logger.LogError(e.Message);
コード例 #6
0
 protected override void ErrorHandler(object sender, BuildErrorEventArgs errorEvent)
 {
     ++_errorCount;
     QueueOutputText(GetFormattedErrorMessage(Path.GetFullPath(errorEvent.File),
                                              errorEvent.LineNumber, errorEvent.ColumnNumber, MsgKind.Error, errorEvent.Code, errorEvent.Message));
 }
コード例 #7
0
 public abstract void ErrorHandler(object sender, BuildErrorEventArgs e);
コード例 #8
0
 public void ErrorHandler(object sender, BuildErrorEventArgs args)
 {
     GetBuildRecord(sender).ErrorHandler(args);
 }
コード例 #9
0
 void OnError(object sender, BuildErrorEventArgs e)
 {
     TaskService.BuildMessageViewCategory.AppendLine(e.Message);
 }
コード例 #10
0
 internal static string FormatEventMessage(BuildErrorEventArgs e)
 {
     return(FormatEventMessage(e, false));
 }
コード例 #11
0
ファイル: xunitTests.cs プロジェクト: johnkg/xunit
 private bool CaptureErrorMessage(BuildErrorEventArgs eventArgs, List<string> messages)
 {
     messages.Add(eventArgs.Message);
     return true;
 }
コード例 #12
0
 public virtual void LogErrorEvent(BuildErrorEventArgs eventArgs)
 {
     errors.Add(eventArgs);
 }
コード例 #13
0
ファイル: ToolTaskTest.cs プロジェクト: Tsalex71/mono-1
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     Console.WriteLine(e.Message);
 }
コード例 #14
0
 public virtual string FormatErrorEvent(BuildErrorEventArgs args)
 {
     return(EventArgsFormatting.FormatEventMessage(args));
 }
コード例 #15
0
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     Log(e.Message);
 }
コード例 #16
0
 private void ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     this.errors++;
     this.LogErrorOrWarning("error", e.Message, e.Code, e.File, e.LineNumber, e.ColumnNumber, e.Subcategory);
 }
コード例 #17
0
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     LogErrorEvents.Add(e);
 }
コード例 #18
0
 internal static string FormatEventMessage(BuildErrorEventArgs e, bool removeCarriageReturn, bool showProjectFile)
 {
     ErrorUtilities.VerifyThrowArgumentNull(e, "e");
     return(FormatEventMessage("error", e.Subcategory, removeCarriageReturn ? EscapeCarriageReturn(e.Message) : e.Message, e.Code, e.File, showProjectFile ? e.ProjectFile : null, e.LineNumber, e.EndLineNumber, e.ColumnNumber, e.EndColumnNumber, e.ThreadId));
 }
コード例 #19
0
ファイル: ToolTaskTest.cs プロジェクト: pmq20/mono_forked
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     Codes.Add(e.Code);
 }
コード例 #20
0
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     this.ConsoleLogger.LogError(e.Message);
 }
コード例 #21
0
 void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     Debug.LogErrorFormat("{0}: ERROR {1}({2},{3}): {4}", e.SenderName, e.File, e.LineNumber, e.ColumnNumber, e.Message);
 }
コード例 #22
0
ファイル: ConsoleLogger.cs プロジェクト: 3F/IeXod
        /// <summary>
        /// Prints an error event
        /// </summary>
        public void ErrorHandler(object sender, BuildErrorEventArgs e)
        {
            InitializeBaseConsoleLogger(); // for compat: see DDB#136924

            _consoleLogger.ErrorHandler(sender, e);
        }
コード例 #23
0
ファイル: ZipTemplates.cs プロジェクト: CloudIDEaaS/hydra
        private void RecurseVSIX(DirectoryInfo directory, Package zipPackage, string rootPath, bool skipZips = true, bool zipSubDirectories = true)
        {
            var subZips = new List <string>();

            if (zipSubDirectories)
            {
                foreach (var subDirectory in directory.GetDirectories())
                {
                    var fileInfo = new FileInfo(Path.Combine(subDirectory.FullName, subDirectory.Name + ".zip"));

                    subZips.Add(fileInfo.FullName);

                    using (var stream = fileInfo.Open(FileMode.Create, FileAccess.ReadWrite))
                    {
                        using (var zipStream = new ZipOutputStream(stream))
                        {
                            zipStream.UseZip64 = UseZip64.Off;
                            RecurseVSIX(subDirectory, zipStream, subDirectory.FullName);
                        }
                    }

                    foreach (var file in subDirectory.GetFiles("*.zip"))
                    {
                        if (subZips.Contains(file.FullName))
                        {
                            var name         = file.FullName.Remove(0, rootPath.Length).Replace("\\", "/");
                            var part         = zipPackage.CreatePart(new Uri(name, UriKind.Relative), "application/zip", CompressionOption.Normal);
                            var outputStream = part.GetStream();

                            using (var inputStream = File.Open(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write))
                            {
                                byte[] buffer = new byte[2048];
                                int    length;

                                while ((length = inputStream.Read(buffer, 0, buffer.Length)) > 0)
                                {
                                    outputStream.Write(buffer, 0, length);
                                }
                            }
                        }
                    }
                }
            }
            else
            {
                foreach (var subDirectory in directory.GetDirectories())
                {
                    RecurseVSIX(subDirectory, zipPackage, subDirectory.FullName, skipZips, false);
                }
            }

            foreach (var file in directory.GetFiles())
            {
                if ((file.Extension.ToLower() != ".zip" || !skipZips || subZips.Contains(file.FullName)) && file.Extension.ToLower() != ".vsix" && file.Name.AsCaseless() != "[Content_Types].xml")
                {
                    var mimeType = string.Empty;

                    if (file.Extension.IsOneOf(".jpg", ".ico", ".png", ".bmp", ".gif", ".dll", ".exe", ".pdb"))
                    {
                        mimeType = "application/octet-stream";
                    }
                    else if (file.Extension.IsOneOf(".xml", ".vsixmanifest", ".vsix", ".vstemplate", ".rtf", ".htm", ".config"))
                    {
                        mimeType = "text/xml";
                    }
                    else if (file.Extension == ".zip")
                    {
                        mimeType = "application/zip";
                    }
                    else
                    {
                        var message = new BuildErrorEventArgs(string.Empty, string.Empty, string.Empty, 0, 0, 0, 0, string.Format("Unexpected package file extension for '{0}'", file.Name), "", "", DateTime.Now);
                        this.BuildEngine.LogErrorEvent(message);

                        continue;
                    }

                    var name         = file.FullName.Remove(0, rootPath.Length).Replace("\\", "/");
                    var part         = zipPackage.CreatePart(new Uri(name, UriKind.Relative), mimeType, CompressionOption.Normal);
                    var outputStream = part.GetStream();

                    using (var inputStream = File.Open(file.FullName, FileMode.Open, FileAccess.Read, FileShare.Read | FileShare.Write))
                    {
                        byte[] buffer = new byte[2048];
                        int    length;

                        while ((length = inputStream.Read(buffer, 0, buffer.Length)) > 0)
                        {
                            outputStream.Write(buffer, 0, length);
                        }
                    }
                }
            }
        }
コード例 #24
0
        /// <summary>
        /// Stub implementation -- forwards to engine being proxied.
        /// </summary>
        public void LogErrorEvent(BuildErrorEventArgs e)
        {
            ErrorUtilities.VerifyThrowArgumentNull(e, nameof(e));
            ErrorUtilities.VerifyThrowInvalidOperation(activeProxy, "AttemptingToLogFromInactiveTask");

            if (parentModule.IsRunningMultipleNodes && !e.GetType().IsSerializable)
            {
                loggingServices.LogWarning(buildEventContext, new BuildEventFileInfo(string.Empty), "ExpectedEventToBeSerializable", e.GetType().Name);
                return;
            }

            string message = GetUpdatedMessage(e.File, e.Message, parentProjectFullFileName);

            if (ContinueOnError)
            {
                // Convert the error into a warning.  We do this because the whole point of
                // ContinueOnError is that a project author expects that the task might fail,
                // but wants to ignore the failures.  This implies that we shouldn't be logging
                // errors either, because you should never have a successful build with errors.
                BuildWarningEventArgs warningEvent = new BuildWarningEventArgs
                                                         (e.Subcategory,
                                                         e.Code,
                                                         e.File,
                                                         e.LineNumber,
                                                         e.ColumnNumber,
                                                         e.EndLineNumber,
                                                         e.EndColumnNumber,
                                                         message, // this is the new message from above
                                                         e.HelpKeyword,
                                                         e.SenderName);

                warningEvent.BuildEventContext = buildEventContext;
                loggingServices.LogWarningEvent(warningEvent);

                // Log a message explaining why we converted the previous error into a warning.
                loggingServices.LogComment(buildEventContext, MessageImportance.Normal, "ErrorConvertedIntoWarning");
            }
            else
            {
                if (e.GetType().Equals(BuildErrorEventArgsType))
                {
                    // We'd like to add the project file to the subcategory, but since this property
                    // is read-only on the BuildErrorEventArgs type, this requires creating a new
                    // instance.  However, if some task logged a custom error type, we don't want to
                    // impolitely (as we already do above on ContinueOnError) throw the custom type
                    // data away.
                    e = new BuildErrorEventArgs
                        (
                        e.Subcategory,
                        e.Code,
                        e.File,
                        e.LineNumber,
                        e.ColumnNumber,
                        e.EndLineNumber,
                        e.EndColumnNumber,
                        message,      // this is the new message from above
                        e.HelpKeyword,
                        e.SenderName
                        );
                }

                e.BuildEventContext = buildEventContext;
                loggingServices.LogErrorEvent(e);
            }
        }
コード例 #25
0
 private void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     Trace.WriteLine(@"Error: " + e.Message);
 }
コード例 #26
0
 private void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     LogErrorOrWarning(XmlLoggerElements.Error, e.Message, e.Code, e.File, e.LineNumber, e.ColumnNumber, e.Timestamp);
 }
コード例 #27
0
        private void EventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
        {
            try
            {
                if (e.BuildEventContext == null)
                {
                    return;
                }

                Log.Debug("Error Raised");

                int context = e.BuildEventContext.ProjectContextId;
                if (_projects.TryGetValue(context, out Span projectSpan))
                {
                    string correlation     = $"[{CorrelationIdentifier.TraceIdKey}={projectSpan.TraceId},{CorrelationIdentifier.SpanIdKey}={projectSpan.SpanId}]";
                    string message         = e.Message;
                    string type            = $"{e.SenderName?.ToUpperInvariant()} ({e.Code}) Error";
                    string code            = e.Code;
                    int?   lineNumber      = e.LineNumber > 0 ? (int?)e.LineNumber : null;
                    int?   columnNumber    = e.ColumnNumber > 0 ? (int?)e.ColumnNumber : null;
                    int?   endLineNumber   = e.EndLineNumber > 0 ? (int?)e.EndLineNumber : null;
                    int?   endColumnNumber = e.EndColumnNumber > 0 ? (int?)e.EndColumnNumber : null;
                    string projectFile     = e.ProjectFile;
                    string filePath        = null;
                    string stack           = null;
                    string subCategory     = e.Subcategory;

                    projectSpan.Status = SpanStatus.Error;
                    projectSpan.SetTag(BuildTags.ErrorMessage, message);
                    projectSpan.SetTag(BuildTags.ErrorType, type);
                    projectSpan.SetTag(BuildTags.ErrorCode, code);
                    projectSpan.SetTag(BuildTags.ErrorStartLine, lineNumber.ToString());
                    projectSpan.SetTag(BuildTags.ErrorStartColumn, columnNumber.ToString());
                    projectSpan.SetTag(BuildTags.ErrorProjectFile, projectFile);

                    if (!string.IsNullOrEmpty(e.File))
                    {
                        filePath = Path.Combine(Path.GetDirectoryName(projectFile), e.File);
                        projectSpan.SetTag(BuildTags.ErrorFile, filePath);
                        if (lineNumber.HasValue && lineNumber != 0)
                        {
                            stack = $" at Source code in {filePath}:line {e.LineNumber}";
                            projectSpan.SetTag(BuildTags.ErrorStack, stack);
                        }
                    }

                    if (!string.IsNullOrEmpty(subCategory))
                    {
                        projectSpan.SetTag(BuildTags.ErrorSubCategory, subCategory);
                    }

                    if (endLineNumber.HasValue && endLineNumber != 0)
                    {
                        projectSpan.SetTag(BuildTags.ErrorEndLine, endLineNumber.ToString());
                    }

                    if (endColumnNumber.HasValue && endColumnNumber != 0)
                    {
                        projectSpan.SetTag(BuildTags.ErrorEndColumn, endColumnNumber.ToString());
                    }

                    LogItem logItem    = new LogItem("error", message, type, code, lineNumber, columnNumber, endLineNumber, endColumnNumber, projectFile, filePath, stack, subCategory);
                    string  logMessage = correlation + JsonConvert.SerializeObject(logItem);
                    Console.WriteLine(logMessage);
                }
            }
            catch (Exception ex)
            {
                Log.Error(ex, "Error in ErrorRaised event");
            }
        }
コード例 #28
0
 public void LogErrorEvent(BuildErrorEventArgs e) => _errors.AppendLine(e.Message);
コード例 #29
0
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     BuildErrorEventArgs.Add(e);
 }
コード例 #30
0
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     Logger.ErrorEvents.Add(e);
 }
コード例 #31
0
 /// <summary>
 /// Format the error event message and all the other event data into
 /// a single string.
 /// </summary>
 /// <param name="e">Error to format</param>
 /// <param name="showProjectFile"><code>true</code> to show the project file which issued the event, otherwise <code>false</code>.</param>
 /// <param name="projectConfigurationDescription">Properties to Print along with message</param>
 /// <returns>The formatted message string.</returns>
 internal static string FormatEventMessage(BuildErrorEventArgs e, bool showProjectFile, string projectConfigurationDescription)
 {
     return(FormatEventMessage("error", e.Subcategory, e.Message,
                               e.Code, e.File, showProjectFile ? e.ProjectFile : null, e.LineNumber, e.EndLineNumber,
                               e.ColumnNumber, e.EndColumnNumber, e.ThreadId, projectConfigurationDescription));
 }
コード例 #32
0
 private void BuildError(object sender, BuildErrorEventArgs e)
 {
     SendMessage(FormatMessage(e));
 }
コード例 #33
0
ファイル: ErrorLogger.cs プロジェクト: Hsiett/galaxy-pp
 /// <summary>
 /// Handles error notification events by storing the error message string.
 /// </summary>
 void ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     errors.Add(e.Message);
 }
コード例 #34
0
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
     LogErrorEvents.Add(e);
     Console.WriteLine(e.Message);
 }
コード例 #35
0
 void OnError(object sender, BuildErrorEventArgs e)
 {
     AppendError(e.File, e.LineNumber, e.ColumnNumber, e.Code, e.Message, false);
 }
コード例 #36
0
ファイル: SpyLogger.cs プロジェクト: PKRoma/xunit-codeplex
 private void Log(BuildErrorEventArgs eventArgs)
 {
     Messages.Add(String.Format("ERROR: {0}", eventArgs.Message));
 }
コード例 #37
0
ファイル: XmlLogger.cs プロジェクト: vardars/ci-factory
 void eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     LogErrorOrWarning(XmlLoggerElements.Error, e.Message, e.Code, e.File, e.LineNumber, e.ColumnNumber, e.Timestamp);
 }
コード例 #38
0
ファイル: MemoryLogger.cs プロジェクト: WiseGus/XpTestBuilder
 private void _eventSource_ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     //_messages.Add($"{e.Timestamp.ToString("dd/MM/yyyy hh:mm:ss")}, {e.Message}");
     _messages.Add(e.Message);
 }
コード例 #39
0
ファイル: StubBuildEngine.cs プロジェクト: sachhi/costura
 public void LogErrorEvent(BuildErrorEventArgs e)
 {
 }
コード例 #40
0
 void ErrorRaised(object sender, BuildErrorEventArgs e)
 {
     writer.AppendLine(GetLogMessage("ErrorRaised", e));
 }