2009-02-10 23 views
10

Todo lo que quiero hacer es añadir la fecha y hora actuales a mi archivo de registro, dicen:Anexar actual Fecha de Archivo de registro con Log4net

"export_(Wed_Feb_21_2009_at_1_36_41PM)" 

Aquí está mi configuración actual de mi app.config

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="c:\export.txt" /> 
    <appendToFile value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
    <rollingStyle value="Size" /> 
    <maxSizeRollBackups value="10" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" /> 
    </layout> 
</appender> 

¿Es posible agregar la fecha a mi archivo de registro, o es una de esas cosas que debo hacer en el código y no en la configuración?

Respuesta

8

Añadir lo siguiente a su archivo de configuración

<appender name="rollingFile" type="log4net.Appender.RollingFileAppender,log4net"> 
    <param name="File" value="c:\\ProjectX\\Log\\log.txt"/> 
    <param name="AppendToFile" value="true"/> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> 
    <param name="RollingStyle" value="Date"/> 
    <param name="DatePattern" value="yyyy.MM.dd"/> 
    <param name="StaticLogFileName" value="true"/> 
    <layout type="log4net.Layout.PatternLayout,log4net"> 
    <param name="ConversionPattern" value="%date [%thread] %-5level %logger - %message%newline"/> 
    </layout> 
</appender> 
+0

¿Hay algo que necesite para el parámetro de archivo?La fecha aún no está adjuntada. ¿Tal vez podrías publicar toda la configuración? – Chris

+0

Claro, he editado la respuesta anterior y he agregado toda la sección del apéndice. –

+0

Lo siento ... todavía no se puede ir. ¿Estás usando "log4net" o "Common.Logging"? Estoy usando Common.Logging. Aún obtengo un archivo llamado "log.txt" – Chris

1

Uso StaticLogFileName:

<param name="StaticLogFileName" value="true"/> 
+1

Proporcione más detalles – Chris

+1

Con StaticLogFileName verdadero, sus archivos continuos serán sellados con fecha/hora en lugar de secuencialmente (.1, .2, etc.). Ahora que lo veo, debes configurar rollingstyles para "Fecha" o "Compuesto" para que esto funcione. El documento RollingFileAppender. es bastante claro en estas configuraciones. –

+0

Consulte la sección RollingFileAppender: http://logging.apache.org/log4net/release/config-examples.html –

10

Para aquellos que estén interesados, aquí está la solución:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <param name="File" value="C:\\Users\\chris\\Documents\\log_.txt"/> 
    <param name="RollingStyle" value="Date"/> 
    <param name="DatePattern" value="_(yyyy.MM.dd-hh_mm_ss)"/> 
    <param name="StaticLogFileName" value="false"/> 
    <maximumFileSize value="100KB" /> 
    <appendToFile value="true" /> 
    <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />   
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message %stackTrace%newline" /> 
    </layout> 
</appender> 

y la prueba de la unidad que verifica esto:

[Test] 
public void TestLogger() 
{ 
    logger.Info("Start Log"); 

    for (int i = 0; i < 2500; i++) 
    { 
     logger.Info(i); 
    } 

    logger.Info("End Log Log"); 
} 

Se produce el siguiente resultado:

log_.txt_(2009.02.19-01_16_34) 

No es realmente lo que quería, pero es mejor que lo que tenía antes.

+3

Utilicé este DatePattern: y produjo un archivo con este formato: log_ (2011.05.05-11_28_47) .txt también denominó File to "log", en lugar de log.txt. – rauland

+0

Hola, he estado intentando que mi Log4Net tenga diferentes archivos según la fecha. He seguido las instrucciones no solo en este sitio sino también en varios sitios. Pero no puedo hacerlo bien. ¿Alguna idea de que me pueda estar perdiendo? – william

+0

@william le sería más útil hacer una pregunta por separado y compartir su código en lugar de hacer una pregunta en los comentarios de este. –

12

Producir nombre de archivo como:

log_2013-12-19.txt 

hacer cambios

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <param name="File" value="log_"/> 
    <param name="RollingStyle" value="Date"/> 
    <param name="DatePattern" value="yyyy-MM-dd.\tx\t" /> 
    <param name="StaticLogFileName" value="false"/> 
</appender> 

Observe parámetro "DatePattern", donde \ tx \ t hace que el nombre de extensión de archivo .txt.. Si proporciona .txt en lugar de. \ Tx \ t, esto guardará el nombre del archivo con la extensión .PxP si la hora es PM o .AxA en el caso de AM. así que utilicé \ t para forzar a escribir caracteres en lugar de patrones. También se puede agregar tiempo y el patrón de tiempo que sea necesario.

Por lo tanto, esto puede ser realmente lo que Philipp M quería.

+0

¿Qué sucede si quiere que esto caiga en una subcarpeta debajo de App_Data? – JsonStatham

2

Si desea utilizar un sufijo .log (para generar un archivo como myLogPrefix.20160309.log) usan:

<appender name="GeofenceFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> 
     <file type="log4net.Util.PatternString" value="C:\\Logs\\myLogPrefix" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Date" /> 
     <datePattern value=".yyyyMMdd.lo'g'" /> 
     <staticLogFileName value ="false" /> 
     <layout type="log4net.Layout.PatternLayout"> 
      <conversionPattern value="%date [%thread] %-5level %logger – %message%newline" /> 
     </layout> 
</appender> 

Las trampas son los staticLogFileName = false cual le permite generar los paquetes acumulativos sobre la marcha (en vez de tener que reiniciar el servicio \ servidor) y el incómodo 'g' en el datepattern desde g es un personaje mágico en datePattern. No hay buena documentación en el sitio de log4net para estudiar esto, por lo que en realidad es sabiduría obtenida de prueba y error y recorriendo las experiencias de otras personas.

Cuestiones relacionadas