C # comment spécifier le chemin du fichier appData dans le fichier app.config
Je suis à l'aide de log4net et j'ai été pour enregistrer le fichier journal dans le fichier AppData pour win XP/Vista etc.
C'est mon application.fichier de configuration jusqu'à présent, et j'ai spécifié le nom du softphone.journal. Hoewver, je ne suis pas sûr de la façon de spécifier le chemin complet vers le fichier que chaque utilisateur aura un chemin différent en fonction de leur nom d'utilisateur.
<log4net>
<logger name="default">
<level value="DEBUG"/>
</logger>
<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
<file value="softphone.log"/>
<appendToFile value="true"/>
<rollingStyle value="Size"/>
<maxSizeRollBackup value="10"/>
<maximumFileSize value="1MB"/>
<staticLogFileName value="true"/>
<layout type="log4net.Layout.PatternLayout">
<param name="ConversionPattern" value="%d [%t] %-5p %c %m%n"/>
</layout>
</appender>
</log4net>
Dans mon code source, je peux obtenir le chemin d'accès de la manière suivante:
System.Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData)
Cependant, je ne peux pas l'utiliser dans mon application.config et si je l'ai codé en dur le chemin sur mon système, le chemin serait:
C:\Documents and Settings\John\Application Data
Cependant, ce serait différent pour chaque client. Donc, il y a une manière de le faire pour l'application.fichier de config?
Un grand merci pour toutes les suggestions,
source d'informationauteur ant2009
Vous devez vous connecter pour publier un commentaire.
Je ne crois pas que vous pouvez faire ce que vous voulez, il ya une méthode personnalisée d'analyse domaines de l'application.fichier de configuration de sorte que vous pouvez ajouter votre propre jeton que vous pouvez remplacer par la valeur correcte, mais je ne vois pas comment cela pourrait fonctionner à l'intérieur de la log4net section.
Cependant, tout ce qui est mis en place pour log4net à l'intérieur de la config peut également être définis dans le code. Je pense que vous êtes la meilleure option serait de définir la propriété pour l'appender dans le code juste après le démarrage de l'application.
Ahh, jamais l'esprit d'une recherche rapide a révélé mon ignorance. De ici et ici il semble que quelque chose de similaire à ceci:
Faire ce que vous souhaitez. Je n'ai pas testé moi-même, je vais donc laisser ma première réponse trop - mais je serais intéressé de savoir si vous avez une chance avec elle.