2010-09-17 24 views
15

Tengo un programa que usa log4net. Se registra directamente en la carpeta exe.Redirigir el registro de log4net en el directorio de usuario

Ahora, al pasar a la estación con Windows> XP (Vista, Seven) Observé que los registros no siempre se crean, debido supongo a los privilegios del usuario y la otra materia de seguridad ...

¿Podría redirigir registros en la carpeta del usuario? Dicen

\\ Nombre de usuario \ MiPrograma \ Logs

Respuesta

18

Ejemplo 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> 

observe la variable de entorno ${USERPROFILE}.

+0

+1 para ' ' :) – Noctis

4

sí se puede cambiar la ubicación del archivo de registro por defecto. En la configuración, cambie la configuración file value. A continuación se coloca el archivo en la raíz de C:

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

Incluso puede utilizar una variable de entorno, los siguientes usos uno llamado TMP:

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

En lugar de ${USERPROFILE} (vea answer from moldovanu) puede usar ${LOCALAPPDATA} o ${APPDATA}. Esto escribe sus archivos de registro en la carpeta AppData de los usuarios (subcarpeta local o itinerante).

Cuestiones relacionadas