2010-07-08 4 views
4

J'ai lu la plupart des rubriques connexes concernant la modification du répertoire des journaux par programme, mais les réponses étaient un peu avancées.C# Log4Net - modifier dynamiquement le répertoire des journaux par programme

Mon problème est de tenter de changer dynamiquement l'emplacement où mon fichier journal est enregistré depuis mon application C#. J'ai une zone de texte avec un bouton de navigation pour choisir où il devrait être enregistré.

Quelqu'un a une idée ou peut me diriger dans la bonne direction avec du code? J'ai essayé de jouer avec des idées similaires, mais je n'arrive pas à faire les choses correctement.

Nous vous remercions de votre aide.

Jeff

Répondre

11

Si vous voulez que votre fichier journal être lieu à un endroit précis qui sera décidé au moment de l'exécution peut être votre répertoire de sortie du projet, vous pouvez configurer votre entrée de fichier .config de cette façon

file type="log4net.Util.PatternString" value="%property{LogFileName}.txt" 

puis dans le code avant d'appeler configure log4net, définissez le nouveau chemin comme ci-dessous

log4net.GlobalContext.Properties["LogFileName"] = @"E:\file1"; //log file path 
log4net.Config.XmlConfigurator.Configure(); 

donc, si votre exigence est en train de changer le répertoire journal ectory si souvent puis mettre à jour la valeur de la propriété chaque fois suivie par .Configure() ainsi.

+1

Remarque: Ceci n'est pas sécurisé. – Sameer

+0

et ne fonctionne pas lorsque vous définissez votre fichier de configuration pour log4net dans AssemblyInfo.cs –

Questions connexes