using System;
namespace Umbraco.Core.Logging
{
///
/// Provides extension methods for the interface.
///
public static class LoggerExtensions
{
///
/// Determines if logging is enabled at a specified level, for a reporting type.
///
/// The reporting type.
/// The logger.
/// The level.
public static bool IsEnabled(this ILogger logger, LogLevel level)
=> logger.IsEnabled(typeof(T), level);
///
/// Logs an error message with an exception.
///
/// The reporting type.
/// The logger.
/// A message.
/// An exception.
public static void LogError(this ILogger logger, Exception exception, string message)
=> logger.LogError(exception, message);
///
/// Logs an error message with an exception.
///
/// The reporting type.
/// The logger.
/// An exception.
/// A message template.
/// Property values.
public static void LogError(this ILogger logger, Exception exception, string messageTemplate, params object[] propertyValues)
=> logger.LogError(exception, messageTemplate, propertyValues);
///
/// Logs an error message.
///
/// The reporting type.
/// The logger.
/// A message.
public static void LogError(this ILogger logger, string message)
=> logger.LogError(message);
///
/// Logs an error message.
///
/// The reporting type.
/// The logger.
/// A message template.
/// Property values.
public static void LogError(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.LogError(messageTemplate, propertyValues);
///
/// Logs a warning message.
///
/// The reporting type.
/// The logger.
/// A message.
public static void LogWarning(this ILogger logger, string message)
=> logger.LogWarning(message);
///
/// Logs a warning message.
///
/// The reporting type.
/// The logger.
/// A message template.
/// Property values.
public static void LogWarning(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.LogWarning(messageTemplate, propertyValues);
///
/// Logs a warning message with an exception.
///
/// The reporting type.
/// The logger.
/// An exception.
/// A message.
public static void LogWarning(this ILogger logger, Exception exception, string message)
=> logger.LogWarning(exception, message);
///
/// Logs a warning message with an exception.
///
/// The reporting type.
/// The logger.
/// An exception.
/// A message template.
/// Property values.
public static void LogWarning(this ILogger logger, Exception exception, string messageTemplate, params object[] propertyValues)
=> logger.LogWarning(exception, messageTemplate, propertyValues);
///
/// Logs an information message.
///
/// The reporting type.
/// The logger.
/// A message.
public static void Info(this ILogger logger, string message)
=> logger.LogInformation(message);
///
/// Logs a information message.
///
/// The reporting type
/// The logger.
/// A message template.
/// Property values.
public static void Info(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.LogInformation(messageTemplate, propertyValues);
///
/// Logs a debugging message.
///
/// The reporting type.
/// The logger.
/// A message.
public static void Debug(this ILogger logger, string message)
=> logger.LogDebug(message);
///
/// Logs a debugging message.
///
/// The reporting type
/// The logger.
/// A message template.
/// Property values.
public static void Debug(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.LogDebug(messageTemplate, propertyValues);
///
/// Logs a verbose message.
///
/// The reporting type.
/// The logger.
/// A message template.
/// Property values.
public static void Verbose(this ILogger logger, string messageTemplate, params object[] propertyValues)
=> logger.LogTrace(messageTemplate, propertyValues);
///
/// Logs a fatal message.
///
/// The reporting type.
/// The logger.
/// An exception.
/// A message.
public static void Fatal(this ILogger logger, Exception exception, string message)
=> logger.LogCritical(exception, message);
///
/// Logs a fatal message.
///
/// The reporting type.
/// The logger.
/// An exception.
/// A message template.
/// Property values.
public static void Fatal(this ILogger logger, Exception exception, string messageTemplate, params object[] propertyValues)
=> logger.LogCritical(exception, messageTemplate, propertyValues);
}
}