using System;
using Microsoft.Build.Framework;
namespace AggregateConfigBuildTask
{
///
/// Interface for task logging helper methods.
///
public interface ITaskLogger
{
///
/// Logs an error message.
///
/// The error message to log.
/// Optional arguments for formatting the message.
void LogError(string message = null, params object[] messageArgs);
///
/// Logs an error message from an exception.
///
/// The exception to log.
/// Indicates whether to show the stack trace.
/// Indicates whether to show detailed information.
/// The file where the exception occurred.
void LogErrorFromException(Exception exception,
bool showStackTrace = false,
bool showDetail = false,
string file = null);
///
/// Logs a warning message.
///
/// The warning message to log.
/// Optional arguments for formatting the message.
void LogWarning(string message = null, params object[] messageArgs);
///
/// Logs a warning message with additional parameters.
///
/// The subcategory of the warning.
/// The warning code.
/// The help keyword associated with the warning.
/// The file in which the warning occurred.
/// The line number where the warning occurred.
/// The column number where the warning occurred.
/// The end line number of the warning.
/// The end column number of the warning.
/// The warning message to log.
/// Optional arguments for formatting the message.
void LogWarning(
string subcategory = null,
string warningCode = null,
string helpKeyword = null,
string file = null,
int lineNumber = 0,
int columnNumber = 0,
int endLineNumber = 0,
int endColumnNumber = 0,
string message = null,
params object[] messageArgs);
///
/// Logs a message with specified importance.
///
/// The importance level of the message.
/// The message to log.
/// Optional arguments for formatting the message.
void LogMessage(MessageImportance importance = MessageImportance.Normal, string message = null, params object[] messageArgs);
}
}