Como forçar o recarregamento do arquivo de configuração do NLog?

Estou usando o NLog com arquivos de configuração. Para evitar registrar muitas coisas para alguns tratamentos longos, estou fazendo esse tipo de coisa:

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

Isso me permite degradar temporariamente o nível de detalhe do registro. As linhas acima são apenas um exemplo para ilustrar. Isso parece funcionar perfeitamente.

Depois disso, gostaria de restaurar minha configuração de log "regular", simplesmenterecarregando meu arquivo NLog.Config que já foi carregado automaticamente na inicialização do programa. Eu tentei :

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

Eu pensei que seria fácil, mas a configuração. O Recarregar não faz o que eu esperava e não encontrei nenhum outro método adequado. Após a chamada, meu criador de logs ainda não armazena rastreamentos e eventos de depuração, enquanto eles estavam na inicialização do programa.

Portanto, minha pergunta é: como forçar programaticamente o recarregamento do NLog.config em tempo de execução e restaurar minhas configurações de loggers "padrão"?

obrigado

Atualização da pergunta com mais detalhes:

Estou usando o VS2013, .Net 4 projet com NLog 4.4.0-beta11 (beta mas último em nuget), destino "Arquivo" simples definido no arquivo de configuração com minLevel = Trace e autoReload = True

Logger instanciado no nível da classe: private static readonly Logger Logger = LogManager.GetCurrentClassLogger ();

Aqui está a minha prova de teste:

    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

Log gerado:

    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

No log interno do nlog, posso ver que a configuração parece ter sido recarregada sem problemas (arquivo muito longo, para que não seja publicado aqui a menos que alguém pergunte), mas talvez os criadores de logs existentes não estejam atualizados?

Com o código acima, deve ser fácil tentar do seu lado. Por favor, deixe-me saber se eu faço algo errado ou se é um erro no gerenciamento de configuração do NLog.

questionAnswers(1)

yourAnswerToTheQuestion