using log4net; using System; using System.Reflection; namespace Microsoft.Extensions.Logging.Extensions { /// /// Log4Net provider extensions. /// public static class Log4NetProviderExtensions { /// /// Creates a logger with the name of the given type. /// /// The type of the class to be used as name of the logger. /// An ILoggerProvider instance. /// An instance of the . public static ILogger CreateLogger(this ILoggerProvider self) where TName : class { if (self == null) { throw new ArgumentNullException(nameof(self)); } if (!self.GetType().IsAssignableFrom(typeof(Log4NetProvider))) { throw new ArgumentOutOfRangeException(nameof(self), "The ILoggerProvider should be of type Log4NetProvider."); } return self.CreateLogger(typeof(TName).FullName); } } }