Ajouter / supprimer des fichiers de log en cours d'exécution dans NLog
Je suis en train d'écrire un petit utilitaire de conversion de fichier. Les fichiers sont automatiquement convertis lorsqu'ils sont déposés dans un répertoire.
Je suis en utilisant NLog pour la journalisation. En plus d'une centrale de fichier de log qui est configuré à l'aide de NLog.conf (et qui reçoit tous les messages générés), j'aimerais créer un fichier journal pour chaque fichier d'entrée, ayant un nom similaire et contenant tous les messages du journal écrit pendant le processus de conversion.
Malheureusement, il me semble être incapable de trouver comment ajouter un nouveau fichier cible avec la règle appropriée au cours de l'exécution. Je veux que tous les Logger
objets d'écrire le nouveau fichier journal pendant le processus de conversion.
J'ai essayé quelque chose comme
var logfile = new NLog.Targets.FileTarget();
logfile.FileName = fileName + ".log";
logfile.KeepFileOpen = true;
logfile.Initialize();
var rule = new NLog.Config.LoggingRule("*", logfile);
NLog.LogManager.Configuration.LoggingRules.Add(rule);
NLog.LogManager.ReconfigExistingLoggers();
//
//Proceed with converting file
//
logfile.Flush();
NLog.LogManager.Configuration.LoggingRules.Remove(rule);
NLog.LogManager.ReconfigExistingLoggers();
Mais aucun fichier journal a été créé.
Qu'ai-je tort? Une idée?
Vous devez vous connecter pour publier un commentaire.
Le deuxième post sur ce fil m'a conduit à la solution:
http://nlog-project.org/forum.html#nabble-td1685349
- Vous pour obtenir le courant NLog de configuration, apporter des modifications à cette LoggingConfiguration objet, puis réaffecter LogManager.La Configuration.
C'est le code que j'ai utilisé:
string filename = string.Format("C:\\LogFile-{0:yyyy-MM-dd_hh-mm-ss-tt}", DateTime.Now); var logFile = new FileTarget(filename); config.AddTarget(logFile);
pourrait aussi être un plus court d'utilisation.