¿Cómo forzar la recarga del archivo de configuración NLog?

Estoy usando NLog con archivos de configuración. Para evitar registrar demasiadas cosas para algunos tratamientos largos, estoy haciendo este tipo de cosas:

 foreach (LoggingRule rule in LogManager.Configuration.LoggingRules) 
 {
      rule.DisableLoggingForLevel(LogLevel.Trace);   
      rule.DisableLoggingForLevel(LogLevel.Debug);   
 }
 LogManager.ReconfigExistingLoggers();

Me permite degradar temporalmente el nivel de detalle de registro. Las líneas anteriores son solo un ejemplo para ilustrar. Esto parece funcionar perfectamente.

Después de eso, me gustaría restaurar mi configuración de registro "regular", simplementerecargando mi archivo NLog.Config que ya se cargó automáticamente al inicio del programa. He intentado :

LogManager.Configuration.Reload();
LogManager.ReconfigExistingLoggers();

Pensé que sería fácil, pero la configuración. La recarga no hace lo que esperaba y no encontré ningún otro método adecuado. Después de la llamada, mi registrador aún no almacena rastros y eventos de depuración, mientras estaban en el inicio del programa.

Entonces mi pregunta es: ¿cómo forzar mediante programación la recarga de NLog.config en tiempo de ejecución y restaurar la configuración de mis registradores "estándar"?

Gracias

Actualización de preguntas con más detalles:

Estoy usando VS2013, .Net 4 projet con NLog 4.4.0-beta11 (beta pero último en nuget), objetivo simple "Archivo" definido en el archivo de configuración con minLevel = Trace y autoReload = True

Registrador instanciado a nivel de clase: privado solo lectura estática Logger Logger = LogManager.GetCurrentClassLogger ();

Aquí está mi prueba de prueba:

    Assert.True(Logger.IsTraceEnabled);
    Assert.True(Logger.IsDebugEnabled);

    Logger.Trace("1 - This should appear in log");
    Logger.Debug("2 - This should appear in log");

    foreach (LoggingRule rule in LogManager.Configuration.LoggingRules)
    {
        rule.DisableLoggingForLevel(LogLevel.Trace);
        rule.DisableLoggingForLevel(LogLevel.Debug);
    }
    LogManager.ReconfigExistingLoggers();

    Logger.Trace("3 - This should NOT appear in log");
    Logger.Debug("4 - This should NOT appear in log");
    Logger.Info("5 - This should appear in log");

    Assert.False(Logger.IsDebugEnabled);
    Assert.False(Logger.IsTraceEnabled);

    LogManager.Configuration.Reload();
    LogManager.ReconfigExistingLoggers();

    // This is were something goes wrong

    Logger.Trace("6 - This should appear in log"); // DOES NOTHING
    Logger.Debug("7 - This should appear in log"); // DOES NOTHING
    Logger.Info("8 - This should appear in log");

    Assert.True(Logger.IsDebugEnabled); // FAILS
    Assert.True(Logger.IsTraceEnabled); // FAILS

Registro generado:

    TRACE 1 - This should appear in log         
    DEBUG 2 - This should appear in log
    INFO 5 - This should appear in log
    INFO 8 - This should appear in log

En el registro interno de nlog puedo ver que la configuración parece haber sido recargada sin problemas (archivo muy largo, así que no lo publico aquí a menos que alguien pregunte), pero ¿tal vez los registradores existentes no están actualizados?

Con el código anterior, debería ser fácil probar de tu lado. Avíseme si hago algo mal o si se trata de un error dentro de la administración de configuración de NLog.

Respuestas a la pregunta(1)

Su respuesta a la pregunta