Registro de NLog ILogger con inyector simple

¿Hay alguna manera de obtener el contexto para poder recuperar elloggerName y useLogManager.GetLogger(loggerName) en lugar deLogManager.GetCurrentClassLogger()?

Me di cuentacontainer.RegisterConditional() tiene acceso al contexto.

Además, quiero evitar soluciones comoSimpleLogging.NLog por ahora.

Finalmente, estoy dispuesto a aceptar que este no es el enfoque correcto. Por cierto, AOP es una opción que ya he explorado (¿Es una buena práctica tener logger como singleton?)

Nota: soy consciente de queGetCurrentClassLogger() obtiene la misma información que recuperaría con la reflexión de .NET.

using NLog;
using SimpleInjector;

namespace DependencyInjection
{
    class Program
    {
        private static Container _container;
        static void Main(string[] args)
        {
            Bootstrap();
            _container.GetInstance<Greeter>().Greet();
        }

        private static void Bootstrap()
        {
            _container = new Container();

            _container.Register<ILogger>(() => LogManager.GetCurrentClassLogger(), Lifestyle.Transient);
            _container.Register<Greeter>();

            _container.Verify();
        }

        public class Greeter
        {
            private ILogger _logger;

            public Greeter(ILogger logger)
            {
                _logger = logger;
            }

            public void Greet()
            {
                _logger.Log(LogLevel.Info, "Hello world!");
            }
        }
    }
}

Respuestas a la pregunta(1)

Su respuesta a la pregunta