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);
}
}
}