2014-06-10 21 views
7

Come creare il file di registro nella cartella appData. Il percorso è C: \ Users \ MYNAME \ AppData \ Roaming \ Project \ My Project \ Application. Non appena il mio progetto inizia, la cartella del progetto viene creata su questo percorso in cui questo percorso è hard coded. Come posso aggiungere il mio file di registro in questa cartella usando log4net? ho fatto modifiche nel file di configurazioneCome creare un file nella cartella AppData utilizzando log4net

<?xml version="1.0"?> 
<configuration> 
<configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler, log4net"/> 
</configSections> 
<log4net> 
    <appender name="Console" type="log4net.Appender.ConsoleAppender"> 
     <layout type="log4net.Layout.PatternLayout"> 
      <!-- Pattern to output the caller's file name and line number --> 
      <conversionPattern value="%5level [%thread] (%file:%line) - %message%newline" /> 
     </layout> 
    </appender> 
    <appender name="RollingFile" type="log4net.Appender.RollingFileAppender"> 

     <file value="${APPDATA}\\Roaming\\Project\\My Project\\Application\\Log.txt"/> 
     <appendToFile value="true" /> 
     <maximumFileSize value="100KB" /> 
     <maxSizeRollBackups value="10" /> 
     <layout type="log4net.Layout.PatternLayout">    
      <conversionPattern value="%level %thread %logger - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="ALL" /> 
     <appender-ref ref="Console" /> 
     <appender-ref ref="RollingFile" /> 
    </root> 
</log4net> 
<startup> 
    <supportedRuntime version="v4.0" sku=".NETFramework,Version=v4.0"/> 
</startup> 
<system.serviceModel> 
    <bindings /> 
    <client /> 
</system.serviceModel> 
</configuration> 

Questo non crea alcun file in questa cartella. E tutte le autorizzazioni sono concesse come amministratore.

risposta

9

Sembra che si sta facendo nel modo giusto, tuttavia ci sono casi che sembra l'involucro della variabile fa la differenza: An other question on the subject

si può provare se: ${AppData} funziona

+0

dispiace io sono in grado per crearlo. Dovrebbe essere . $ {AppData} fa automaticamente riferimento al roaming. C'è un modo per eliminare questi file quando l'applicazione viene disinstallata? –

+1

@roopinin solo se si dispone di un programma di disinstallazione personalizzato poiché i file creati da log4net non sono tracciati da Windows Installer, in quanto non vengono creati durante l'installazione. – stuartd

+0

@stuartd - Devo creare un programma di installazione personalizzato, grazie. –

Problemi correlati