2009-10-22 3 views
1

Je ne peux pas sembler trouver une réponse définitive/exemple sur la façon dont je peux me connecter à un fichier dans AppDataComment puis-je me connecter à un fichier dans Common Application Data (appdata) en utilisant log4net?

C: \ Documents and Settings \ All Users \ Application Data \ CompanyName \ ApplicationName \ Logs app \ .log

Je ne veux pas "hardcode" le chemin dans le app.config et préféreraient utiliser Environment.SpecialFolder.CommonApplicationData

+0

duplication possible de [Log4Net.Comment puis-je modifier l'emplacement du fichier par programme C#?] (Http://stackoverflow.com/questions/1535736/log4net-how-can-i-change-the-file-location-programmatically -c) –

Répondre

1

Oui, jetez un oeil à my answer to this question. Il explique en détail comment configurer cette configuration de chemin dans la configuration de log4net.

+0

Approche intéressante. – RichardOD

-1

Une façon:

log4net.Repository.Hierarchy.Hierarchy hierarchy = (log4net.Repository.Hierarchy.Hierarchy)log4net.LogManager.GetRepository(); 
var appenders = hierarchy.GetAppenders(); 
    foreach (var appender in appenders) 
    { 
    FileAppender fileAppender = appender as FileAppender; 
    if (fileAppender != null) 
    { 
     fileAppender.File = Path.Combine(Environment.SpecialFolder.CommonApplicationData, "myLogFile.log"); 
     fileAppender.ActivateOptions(); 
    } 
    } 
+0

Il y a beaucoup de façons acceptables (idiomatiques, même) de le faire avec la configuration de log4net. log4net n'est simplement pas construit pour la modification d'exécution. –

Questions connexes