la reconfiguration de NLog par programmation
C'est ma première fois à l'aide de la NLog package pour l'enregistrement, mais jusqu'à présent, sa été très agréable de travailler avec.
Dans mon scénario j'ai besoin d'initialiser mon NLog LoggingConfiguration paramètres par programme plutôt que par le plus typique fichier de config du scénario. J'ai testé et trouvé de travail sur la façon dont je veux par défaut. Mais comment puis-je modifier mes paramètres par programme au moment de l'exécution? Probablement le scénario le plus commun, ici, est celui où l'application du niveau d'enregistrement est défini à l'ERREUR par défaut, mais un bug survient dans un module particulier que je veux changer le niveau d'enregistrement à être beaucoup plus prolixe pour localiser l'erreur. J'aimerais écrire une petite interface web, donc je peux facilement modifier ces paramètres au moment de l'exécution, mais je veux m'assurer que je prends la bonne approche avec ce.
- Veuillez garder à l'esprit que la modification du niveau min à
Trace
pourrait être fait avec la configuration XML sans avoir à redémarrer l'application.
Vous devez vous connecter pour publier un commentaire.
Je sais que je suis une année de retard, mais je viens de croiser scénario similaire où j'avais besoin pour fournir le contrôle dynamique de l'enregistreur de données d'utilisateurs. Heureusement, il est relativement facile avec nlog. Ici, je suis juste activation de la Trace au niveau de journalisation à un déjà créé Logger mais évidemment, vous pourriez faire tout ce que vous vouliez y compris l'ajout de nouvelles Cibles et/ou des Règles ou juste remplacer le LoggerConfiguration avec vos généré par programmation un.
De base ColoredConsole nlog.config:
Simple application console:
Si vous avez besoin de modifier la configuration de la Journalisation de l'extérieur du processus et il doit être fait par programmation, je suggère d'aller avec WCF. Vous pouvez exposer un petit service WCF à partir de votre application ou site web qui fournit des méthodes pour la reconfiguration nlog.
LogManager.ReconfigExistingLoggers();
est la clé ici. Sans cela, vous ne serez pas en mesure d'ajouter de la cible de journalisation/règleJ'ai trouvé "Configuration de l'API" dans NLog documentation (https://github.com/NLog/NLog/wiki/Configure-from-code), peut-être cela vous aider. Regardez NLog.Config de l'espace de noms dans NLog assemblée de trop.
Voir aussi: https://github.com/NLog/NLog/wiki/Reinitialize-NLog-configuration
De programmation configuration initiale exemple est donné sur la NLog tutoriel page ici qui j'ai inclus ci-dessous. (Il est un peu une version plus étendue ici.)
Puis, pour changer le niveau de journal, où
logconsole
est la cible que vous souhaitez modifier:où
DisableLoggingForLevels
est une méthode privée exactement commeNLog.Config.LoggingRule.EnableLoggingForLevels
sauf qu'il désactive: