En utilisant Nlog et une cible de base de données, existe-t-il un moyen de définir les informations de connexion au moment de l'exécution ?
Réponse
Trop de publicités?Je me souviens qu'un de mes collègues a fait quelque chose de similaire. Il a trouvé cette réponse : http://nlog-forum.1685105.n2.nabble.com/DDL-for-Database-Table-How-to-set-Connection-String-Programmatically-td5241103.html qui fonctionnait parfaitement bien.
Extrait du lien ci-dessus
La manière la plus simple de remplacer la chaîne de connexion est d'utiliser la méthode suivante GDC :
<target name="db" type="Database" connectionString="${gdc:myConnectionstring}" ... />
Maintenant, dans votre code, vous pouvez simplement faire :
GDC.Set("myConnectionString", "Server=.;database=.....");
Vous pouvez également modifier la cible :
var config = LogManager.Configuration;
var dbTarget = (DatabaseTarget)config.FindTargetByName("db");
dbTarget.ConnectionString = "server=.;...";
LogManager.ReconfigExistingLoggers();