using System; namespace Umbraco.Core.Logging { /// /// Defines the logging service. /// /// /// Message templates in logging methods follow the Message Templates specification /// available at https://messagetemplates.org/ in order to support structured logging. /// Implementations must ensure that they support these templates. Note that the /// specification includes support for traditional C# numeric placeholders. /// For instance, "Processed {Input} in {Time}ms." /// public interface ILogger { /// /// Determines if logging is enabled at a specified level, for a reporting type. /// /// The reporting type. /// The level. bool IsEnabled(Type reporting, LogLevel level); /// /// Logs a fatal message with an exception. /// /// The reporting type. /// An exception. /// A message. void Fatal(Type reporting, Exception exception, string message); /// /// Logs a fatal exception. /// /// The reporting type. /// An exception. /// The message string is unspecified and is implementation-specific. void Fatal(Type reporting, Exception exception); /// /// Logs a fatal message. /// /// The reporting type. /// A message. void Fatal(Type reporting, string message); /// /// Logs a fatal message with an exception. /// /// The reporting type. /// An exception. /// A message template. /// Property values. void Fatal(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues); /// /// Logs a fatal message. /// /// The reporting type. /// A message template. /// Property values. void Fatal(Type reporting, string messageTemplate, params object[] propertyValues); /// /// Logs an error message with an exception. /// /// The reporting type. /// An exception. /// A message. void Error(Type reporting, Exception exception, string message); /// /// Logs an error exception. /// /// The reporting type. /// An exception. /// The message string is unspecified and is implementation-specific. void Error(Type reporting, Exception exception); /// /// Logs an error message. /// /// The reporting type. /// A message. void Error(Type reporting, string message); /// /// Logs an error message with an exception. /// /// The reporting type. /// An exception. /// A message template. /// Property values. void Error(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues); /// /// Logs an error message. /// /// The reporting type. /// A message template. /// Property values. void Error(Type reporting, string messageTemplate, params object[] propertyValues); /// /// Logs a warning message. /// /// The reporting type. /// A message. void Warn(Type reporting, string message); /// /// Logs a warning message. /// /// The reporting type. /// A message template. /// Property values. void Warn(Type reporting, string messageTemplate, params object[] propertyValues); /// /// Logs a warning message with an exception. /// /// The reporting type. /// An exception. /// A message. void Warn(Type reporting, Exception exception, string message); /// /// Logs a warning message with an exception. /// /// The reporting type. /// An exception. /// A message template. /// Property values. void Warn(Type reporting, Exception exception, string messageTemplate, params object[] propertyValues); /// /// Logs an information message. /// /// The reporting type. /// A message. void Info(Type reporting, string message); /// /// Logs a info message. /// /// The reporting type. /// A message template. /// Property values. void Info(Type reporting, string messageTemplate, params object[] propertyValues); /// /// Logs a debugging message. /// /// The reporting type. /// A message. void Debug(Type reporting, string message); /// /// Logs a debug message. /// /// The reporting type. /// A message template. /// Property values. void Debug(Type reporting, string messageTemplate, params object[] propertyValues); /// /// Logs a verbose message. /// /// The reporting type. /// A message. void Verbose(Type reporting, string message); /// /// Logs a verbose message. /// /// The reporting type. /// A message template. /// Property values. void Verbose(Type reporting, string messageTemplate, params object[] propertyValues); } }