I’m using Ninject to resolve the current class name for the logger instance like this:
kernel.Bind<ILogger>().To<NLogLogger>()
.WithConstructorArgument("currentClassName", x => x.Request.ParentContext.Request.Service.FullName);
The constructor of a NLog Implementation could look like this:
public NLogLogger(string currentClassName)
{
_logger = LogManager.GetLogger(currentClassName);
}
This approach should work with other IOC containers as well, I guess.