2009-10-06 4 views
2

Un processus s'exécutant en tant qu'utilisateur non administrateur n'a pas le droit d'écrire dans le dossier des fichiers programme. Quelle est la meilleure façon de configurer log4net pour écrire dans un emplacement auquel un utilisateur non-administrateur a des droits?Comment faire en sorte que log4net génère des fichiers journaux lorsqu'il est exécuté en tant qu'utilisateur non-administrateur?

Idéalement il y aurait:

  • Un seul fichier de configuration ou de configuration à partir du code fonctionne pour toutes les versions de MS Windows pris en charge par .NET.
  • soutien aux services MS Windows
  • support pour la version log4net 1.2.0.30714 (nous devons utiliser cette version)

Questions connexes:

Répondre

3

Pourquoi peut Ne configurez-vous pas simplement log4net pour écrire dans un fichier dans un dossier auquel vous avez les droits d'accès appropriés? Vous faites cela avec un FileAppender:

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="c:/path/log-file.txt" /> 
    <appendToFile value="true" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

ci-dessus est tirée de here. De la même page:

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="${TMP}\log-file.txt" /> 
    <appendToFile value="true" /> 
    <encoding value="unicodeFFFE" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> 
    </layout> 
</appender> 

Vous pouvez utiliser une variable d'environnement pour définir le chemin du fichier.

+0

Le problème est que le chemin codé en dur ne fonctionne pas pour toutes les versions de MS Windows. –

+1

Vous pouvez utiliser une variable d'environnement. – kgiannakakis

+0

Oui, l'utilisation de la variable d'environnement pour déterminer l'emplacement doit être prise. % USERPROFILE% devrait être OK ou% HOMEPATH%. –

Questions connexes