La forma típica de reconfigurar NLog mientras se ejecuta su aplicación es utilizar un archivo de configuración (como NLog.config). Puede definir su configuración de registro en el archivo y puede decirle a NLog que mire el archivo. Si el archivo se modifica (como cambiar el nivel de registro para uno o más registradores), NLog se reconfigurará a sí mismo en función del contenido del archivo.
Usted declara que está configurando programáticamente NLog, por lo que confiar en la capacidad de reconfigurarse en función de un cambio en el archivo de configuración no es una solución viable.
pude reformular su pregunta a algo como esto:
En mi aplicación tengo una variable miembro que inicializar a 10 en el constructor. Esta variable miembro controla el número de veces que mi aplicación debe realizar un ciclo hasta que se cierre. Mientras mi programa se está ejecutando, me gustaría cambiar este valor para que se repita más veces o menos veces. ¿Alguien sabe cómo puedo modificar una variable miembro en tiempo de ejecución?
El problema es similar al tuyo. ¿Cómo iniciar, desde el exterior, un cambio en su aplicación en ejecución? No creo que esto sea específicamente para usar NLog.
Creo que este problema es difícil de resolver a menos que externalice su configuración de registro de alguna manera.
Si usa su propio archivo de configuración u otro archivo, entonces básicamente está duplicando lo que NLog ya hace con su opción de archivo de configuración.
Si emplea algún tipo de mecanismo de sondeo (tal vez con su aplicación revise periódicamente una ubicación (archivo, registro, ???) y luego cambie la configuración de NLog si hay algún indicador de que la configuración de NLog debería cambiar. se almacenaría en esta ubicación? El nuevo nivel de registro? ¿Tiene un solo registrador para toda su aplicación? ¿O tiene el registrador estático único más típico por clase? Si este último, necesita la capacidad de poder especificar qué registrador desea modificar y a qué cambiar el nivel.
Quizás podría comunicarse directamente con su aplicación a través de algún tipo de comunicación compartida de estado o interproceso. Parece mucho trabajo.
Bien podría ser que estoy malinterpretando lo que está tratando de hacer y que realmente hay una manera fácil de lograrlo.
En general, yo diría que hay dos maneras de utilizar Nlog, cada uno con ventajas y disavantages:
archivos
Config
Ventajas
fácil de usar.
Muy poco código específico de NLog en su aplicación.
La configuración del registro se puede cambiar mientras se ejecuta la aplicación.
Desventajas
Tienen que mantenerse al día con el archivo de configuración.
Es posible que no desee que nadie más pueda perder el tiempo con su registro.
configuración mediante programación
Ventajas
no tiene que mantenerse al día con el archivo de configuración.
Otras personas no pueden perder el tiempo fácilmente con su registro.
Desventajas
Más Nlog código específico de la aplicación.
No se puede cambiar la configuración de su NLog mientras su aplicación se ejecuta con algún invento de su parte.
En realidad, no puede cambiar su configuración de NLog después de que su aplicación haya sido compilada sin modificar su código fuente y volver a compilar.
No sé si esto ayudó en todo ...
Tenga en cuenta que cambiar el nivel mínimo a 'Trace' podría hacerse simplemente con la configuración XML sin reiniciar la aplicación. – Julian