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=...
, simplementedatePattern
endatePattern
.Asegúrese de tener el atributo de valor de
preserveLogFileNameExtension
establecido en verdadero.Establezca el valor del atributo
rollingStyle
enDate
.
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>