2010-09-17 5 views
15

J'ai un programme qui utilise log4net. Il se connecte directement dans le dossier exe.Rediriger le journal log4net dans le répertoire utilisateur

Maintenant, lors du passage à la station avec Windows> XP (Vista, Seven) Je constate que les journaux ne sont pas toujours créés, en raison je suppose que les privilèges de l'utilisateur et d'autres trucs de sécurité ...

ce que je pourrais rediriger journaux dans le dossier utilisateur? Dites

\\ Nom d'utilisateur \ MyProgram \ Logs

Répondre

18

Exemple de config.xml:

<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="${USERPROFILE}\MyProgramName\Logs\rolling-log-" /> 
    <appendToFile value="true" /> 
    <maxSizeRollBackups value="5" /> 
    <maximumFileSize value="100KB" /> 
    <rollingStyle value="Date" /> 
    <datePattern value="yyyy-MM-dd.'log'" /> 
    <staticLogFileName value="false" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <header value="[Log opening]&#13;&#10;" /> 
     <footer value="[Log closing]&#13;&#10;" /> 
     <conversionPattern value="%date %-5level %logger - %message%newline" /> 
    </layout> 
</appender> 

remarquez la variable d'environnement ${USERPROFILE}.

+0

+1 pour ' ' :) – Noctis

4

Oui, vous pouvez modifier l'emplacement du fichier journal par défaut. Dans la configuration, modifiez le paramètre file value. Ce qui suit met le fichier à la racine de C:

<appender name="LogFileAppender" type="log4net.Appender.FileAppender"> 
<file value="c:\\log-file.txt"/> 

Vous pouvez même utiliser une variable d'environnement, les utilisations suivantes on a appelé TMP:

<appender name="FileAppender" type="log4net.Appender.FileAppender"> 
    <file value="${TMP}\log-file.txt" /> 
    <appendToFile value="true" /> 
11

Au lieu de ${USERPROFILE} (voir answer from moldovanu), vous pouvez utiliser ${LOCALAPPDATA} ou ${APPDATA}. Cela écrit vos fichiers journaux dans le dossier utilisateurs AppData (sous-dossier local ou itinérant).

Questions connexes