/// <summary> /// Outputs a message to the debug output pane, if the VS MSBuildOutputVerbosity /// setting value is greater than or equal to the given verbosity. So if verbosity is 0, /// it means the message is always written to the output pane. /// </summary> /// <param name="verbosity">The verbosity level.</param> /// <param name="format">The format string.</param> /// <param name="args">An array of objects to write using format. </param> public Task WriteLineAsync(MSBuildVerbosityLevel verbosity, string format, params object[] args) { if (ShouldShowMessageAsOutput(verbosity)) { return(_outputConsole.WriteLineAsync(format, args)); } return(Task.CompletedTask); }
/// <summary> /// MSBuild verbosity -> NuGet LogLevel /// </summary> private static LogLevel GetLogLevel(MSBuildVerbosityLevel level) { switch (level) { case MSBuildVerbosityLevel.Quiet: return(LogLevel.Warning); case MSBuildVerbosityLevel.Minimal: case MSBuildVerbosityLevel.Normal: return(LogLevel.Information); case MSBuildVerbosityLevel.Detailed: return(LogLevel.Verbose); default: return(LogLevel.Debug); } }
/// <summary> /// True if this message will be written out. /// </summary> public bool ShouldShowMessageAsOutput(MSBuildVerbosityLevel verbosity) { return(_outputConsole != null && OutputVerbosity >= (int)verbosity); }