private void LogIssue(IssueDescriptor issueDescriptor, string dynamicMessage, IssueKind?issueKindOverride, SourceSegment?sourceSegment) { var issueKind = issueKindOverride ?? issueDescriptor.DefaultKind; var message = dynamicMessage ?? issueDescriptor.StaticDescription; var code = issueDescriptor.Id; var path = sourceSegment?.Path; var startLine = sourceSegment?.StartLine ?? 0; var startColumn = sourceSegment?.StartColumn ?? 0; var endLine = sourceSegment?.EndLine ?? 0; var endColumn = sourceSegment?.EndColumn ?? 0; LogBuildEvent(issueKind, message, InfoImportance, code, path, startLine, startColumn, endLine, endColumn); if (issueKind == IssueKind.Warning) { numberOfLoggedWarnings++; } if (numberOfLoggedWarnings > (_maxWarningErrorThreshold ?? int.MaxValue) && !tooManyWarningsErrorHasBeenLogged) { tooManyWarningsErrorHasBeenLogged = true; LogIssue(IssueDefinitions.MaxWarningErrorThresholdExceededIssue, "MaxWarningErrorThreshold has been exceeded", null, null); } }
public void LogIssueT_Success() { var issue = new IssueDescriptor <string>("MyCode", IssueKind.Info, "MyDescription", i => i); CreateLogger().LogIssue(issue, "MyParameter"); VerifyLogMessageEvent("MyParameter", MessageImportance.Normal); }
public void LogIssue_Info_Success() { var issue = new IssueDescriptor("MyCode", IssueKind.Info, "MyDescription"); CreateLogger().LogIssue(issue); VerifyLogMessageEvent("MyDescription", MessageImportance.Normal); }
public void LogIssue_Warning_Success() { var issue = new IssueDescriptor("MyCode", IssueKind.Warning, "MyDescription"); CreateLogger().LogIssue(issue); VerifyLogWarningEvent("MyCode", "MyDescription"); }
public void LogIssue_Error_Success() { var issue = new IssueDescriptor("MyCode", IssueKind.Error, "MyDescription"); CreateLogger().LogIssue(issue); VerifyLogErrorEvent("MyCode", "MyDescription"); }
public void LogIssue_Info_HighImportance_Success() { var issue = new IssueDescriptor("MyCode", IssueKind.Info, "MyDescription"); var logger = CreateLogger(); logger.InfoImportance = MessageImportance.High; logger.LogIssue(issue); VerifyLogMessageEvent("MyDescription", MessageImportance.High); }
public static DiagnosticDescriptor ToDiagnosticDescriptor <TIssue>(this IssueDescriptor <TIssue> issueDescriptor) { return(new DiagnosticDescriptor( issueDescriptor.Id, issueDescriptor.StaticDescription, issueDescriptor.StaticDescription, ProductConstants.ToolName, issueDescriptor.DefaultKind.ToDiagnosticSeverity(), true, helpLinkUri: GetHelpLink(issueDescriptor.Id))); }
private void LogIssue(IssueDescriptor issueDescriptor, string dynamicMessage, IssueKind?issueKindOverride, SourceSegment?sourceSegment) { var issueKind = issueKindOverride ?? issueDescriptor.DefaultKind; var message = dynamicMessage ?? issueDescriptor.StaticDescription; var code = issueDescriptor.Id; var path = sourceSegment?.Path; var startLine = sourceSegment?.StartLine ?? 0; var startColumn = sourceSegment?.StartColumn ?? 0; var endLine = sourceSegment?.EndLine ?? 0; var endColumn = sourceSegment?.EndColumn ?? 0; LogBuildEvent(issueKind, message, InfoImportance, code, path, startLine, startColumn, endLine, endColumn); }
public void ExceedingMaxWarningErrorThresholdCausesIssueToBeLogged() { //Given a logger var msBuildLoggerGateway = CreateLogger(); //And that logger has a maxWarningErrorThreshold msBuildLoggerGateway.SetMaxWarningErrorThreshold(0); //When there have been more warnings logged than the maxWarningErrorThreshold var issue = new IssueDescriptor <string>("MyCode", IssueKind.Warning, "MyDescription", i => i); msBuildLoggerGateway.LogIssue(issue, "MyParameter"); //Then an error should be logged VerifyLogErrorEvent(IssueDefinitions.MaxWarningErrorThresholdExceededIssue.Id, "MaxWarningErrorThreshold has been exceeded"); }
public void LogIssue(IssueDescriptor issueDescriptor) => LogIssue(issueDescriptor, null, null, null);
public void LogIssue <T>(IssueDescriptor <T> issueDescriptor, T issueParameter, IssueKind?issueKindOverride = null, SourceSegment?sourceSegment = null) => LogIssue(issueDescriptor, issueDescriptor.GetDynamicDescription(issueParameter), issueKindOverride, sourceSegment);
public void LogIssue(IssueDescriptor issueDescriptor, IssueKind?issueKindOverride = null) => LogIssue(issueDescriptor, null, issueKindOverride, null);