eventlogappender ejemplos conversionpattern c# logging log4net filenames

c# - ejemplos - log4net table



Log4net rodando el nombre del archivo a diario con la fecha en el nombre del archivo (8)

Me gustaría tener archivos nombrados, por ejemplo:

dd.mm.yyyy.log

¿Cómo es esto posible con log4net?


En su archivo de configuración Log4net, use el siguiente parámetro con RollingFileAppender:

<param name="DatePattern" value="dd.MM.yyyy''.log''" />


He intentado todas las respuestas, pero siempre había algo que faltaba y que no funcionaba como esperaba.

Luego experimenté un poco con las sugerencias dadas en cada respuesta y tuve éxito con la siguiente configuración:

<appender name="RollingActivityLog" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="C:/temp/LOG4NET_Sample_Activity.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <staticLogFileName value="false" /> <preserveLogFileNameExtension value="true" /> <datePattern value="-yyyyMMdd" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date %-5level - %message%newline" /> </layout> </appender>

El problema con otras combinaciones de parámetros fue que el último archivo no tenía el patrón de tiempo, o que el patrón de tiempo se anexó como .log20171215 que creó una nueva hora de archivo (y una extensión de archivo = tipo de archivo nuevo) cada día o ambos problemas aparecieron.

Ahora con esta configuración, obtiene archivos como este:

LOG4NET_Sample_Activity-20171215.log

que es lo que yo quería Para resumir:

  • No coloque el patrón de fecha en el atributo <file value=... , simplemente datePattern en datePattern .

  • Asegúrese de tener el atributo de valor de preserveLogFileNameExtension establecido en verdadero.

  • Establezca el valor del atributo rollingStyle en Date .


La sección de configuración extendida en una respuesta anterior con

... ... <rollingStyle value="Composite" /> ... ...

trabajos enumerados pero no tuve que usar

<staticLogFileName value="false" />

. Creo que RollingAppender debe (lógicamente) ignorar esa configuración ya que, por definición, el archivo se reconstruye cada día cuando la aplicación se reinicia / reutiliza. Quizás sí importa una reinversión CADA VEZ que se inicia la aplicación.


Para preservar la extensión de archivo:

<log4net> <root> <level value="DEBUG"/> <appender-ref ref="RollingLogFileAppender"/> </root> <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <file type="log4net.Util.PatternString" value="D://LogFolder//%date{yyyyMM}//SchT.log" /> <appendToFile value="true" /> <rollingStyle value="Date" /> <maximumFileSize value="30MB" /> <staticLogFileName value="true" /> <preserveLogFileNameExtension value="true"/> <datePattern value="ddMMyyyy" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> </log4net>


Para un RollingLogFileAppender también necesita estos elementos y valores:

<rollingStyle value="Date" /> <staticLogFileName value="false" />


Terminé usando (tenga en cuenta el nombre de archivo ''.log'' y las comillas simples alrededor de ''myfilename_''):

<rollingStyle value="Date" /> <datePattern value="''myfilename_''yyyy-MM-dd"/> <preserveLogFileNameExtension value="true" /> <staticLogFileName value="false" /> <file type="log4net.Util.PatternString" value="c://Logs//.log" />

Esto me da:

myfilename_2015-09-22.log myfilename_2015-09-23.log . .


Usando Log4Net 1.2.13 usamos las siguientes configuraciones para permitir la fecha y hora en el nombre del archivo.

<file type="log4net.Util.PatternString" value="E:/logname-%utcdate{yyyy-MM-dd}.txt" />

Que proporcionará archivos en la siguiente convención: logname-2015-04-17.txt

Con esto, generalmente es mejor tener lo siguiente para asegurarte de tener 1 registro por día.

<rollingStyle value="Date" /> <datePattern value="yyyyMMdd" />

Si el tamaño del archivo es una preocupación, lo siguiente permite 500 archivos de 5 MB de tamaño hasta que se genera un nuevo día. CountDirection permite la numeración ascendente o descendente de archivos que ya no son actuales.

<maxSizeRollBackups value="500" /> <maximumFileSize value="5MB" /> <rollingStyle value="Composite" /> <datePattern value="yyyyMMdd" /> <CountDirection value="1"/> <staticLogFileName value="true" />


<appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender"> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/> <file value="logs/" /> <datePattern value="dd.MM.yyyy''.log''" /> <staticLogFileName value="false" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <maxSizeRollBackups value="10" /> <maximumFileSize value="5MB" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline" /> </layout> </appender>