llenar - habilitar o deshabilitar botones desde otro formulario en c#
Agregar, habilitar y deshabilitar los registradores NLog mediante programaciĆ³n (2)
Para añadir:
var logTarget = new ...
logTarget.Layout = "Your layout format here";
// e.g. "${logger}: ${message} ${exception:format=tostring}";
// specify what gets logged to the above target
var loggingRule = new LoggingRule("*", LogLevel.Debug, logTarget);
// add target and rule to configuration
LogManager.Configuration.AddTarget("targetName", logTarget);
LogManager.Configuration.LoggingRules.Add(loggingRule);
LogManager.Configuration.Reload();
La eliminación se realiza con
LogManager.Configuration.LoggingRules.Remove(loggingRule);
LogManager.Configuration.Reload();
¿Cómo puedo agregar, editar, eliminar, habilitar y deshabilitar registradores del código para NLog?
Sé que esta es una respuesta antigua, pero quería dar retroalimentación a cualquier persona que quiera hacer modificaciones a sus objetivos y reglas de registro mediante programación que Configuration.Reload () no funciona.
Para actualizar los objetivos existentes mediante programación, debe utilizar el método ReconfigExistingLoggers:
var target = (FileTarget)LogManager.Configuration.FindTargetByName("logfile");
target.FileName = "${logDirectory}/file2.txt";
LogManager.ReconfigExistingLoggers();
Un ejemplo que agrega y elimina reglas de registro sobre la marcha:
if (VerboseLogging && !LogManager.Configuration.LoggingRules.Contains(VerboseLoggingRule))
{
LogManager.Configuration.LoggingRules.Add(VerboseLoggingRule);
LogManager.ReconfigExistingLoggers();
}
else if (!VerboseLogging && LogManager.Configuration.LoggingRules.Contains(VerboseLoggingRule))
{
LogManager.Configuration.LoggingRules.Remove(VerboseLoggingRule);
LogManager.ReconfigExistingLoggers();
}
Como está escrito en los documentos:
Recorre todos los registradores previamente devueltos por GetLogger. y vuelve a calcular su lista de destino y filtro. Es útil después de modificar la configuración mediante programación para garantizar que todos los registradores se hayan configurado correctamente.
Esta respuesta y muestra provienen de la respuesta de Tony en:
Actualizar el nombre de archivo de destino NLog en tiempo de ejecución