2009-03-05 6 views
62

Quiero mi archivo de registro para buscar algo como esto: 2009-02-13.logLog4net: Rolling appender Archivo, definir la extensión

pero el problema es que me parece que no puede encontrar ninguna manera de añadir el extensión .log

He intentado muchas cosas pero nada ayuda. Esto es lo que tengo hasta aquí:

<appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
    <file value="Logs/Log4Net/.log"/> 
    <appendToFile value="true"/> 
    <rollingStyle value="Date"/> 
    <datePattern value="yyyy-MM-dd" /> 
    <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %-5level %logger [%property{NDC}] - %message%newline"/> 
    </layout> 
</appender> 

Respuesta

53

Trate de añadir la extensión .log a su patrón de fecha como tal y sacarlo del atributo de archivo.

<datePattern value="yyyy-MM-dd.lo\g"/> 
... 
<staticLogFileName value="false" /> 
+7

Asimismo, recuerda para agregar

8

complemento ".lo \ g" al final de su DatePattern

105

Las otras respuestas escapar de la "g" en "log", ya que "g" es un carácter especial en DatePattern. Esto no está mal, pero prefiero para envolver todo el conjunto de caracteres que no son de fecha entre comillas simples, así:

<datePattern value="yyyy-MM-dd'.log'" /> 

Esto da los mismos resultados, pero es más fácil para mí de manejar. De esta forma, no tengo que recordar qué caracteres específicos son especiales para datePattern (la lista es larga y variada). Si me olvido de un personaje, no corro el riesgo de borkear mis nombres de archivo; todos escaparon muy bien en masa.

+3

Prefiero este enfoque también. –

+1

Entonces, ¿cuál es el valor que tiene para con esto? – ssmith

+2

@ssmith: deje el '.log' de' '. Log4Net agrega el patrón de fecha al valor del archivo, por lo que desea la extensión del archivo en el primero. –

4

Este es mi archivo de registro xml config. La ruta al archivo de registro está en la etiqueta "archivo"

Esto creará un archivo de registro "2012-11-22.log" en la carpeta "Archivos de registro" en la carpeta de ruta de mi sitio web.

NOTA: ¡Asegúrese de que la carpeta exista primero!

<?xml version="1.0"?> 
<configuration> 
    <configSections> 
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,  log4net"/> 
    </configSections> 
    <log4net> 
    <root> 
     <level value="INFO"/> 
     <appender-ref ref="RollingFileAppender"/> 
    </root> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="LogFiles/"/> 
     <appendToFile value="true"/> 
     <rollingStyle value="Date"/> 
     <maxSizeRollBackups value="5"/> 
     <maximumFileSize value="10MB"/> 
     <datePattern value="yyyy-MM-dd'.log'" /> 
     <staticLogFileName value="false"/> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date [%thread] %level %logger - %message%newline%exception"/> 
     </layout> 
    </appender> 
    </log4net> 
</configuration> 
15

log4net ahora también proporciona una propiedad PreserveLogFileNameExtension que puede forzar su extensión .log al final del nombre de archivo compuesto (incluido el patrón de fecha y/o el número de secuencia de tamaño):

<file value="LogFiles/.log"/> 
<preserveLogFileNameExtension value="true" /> 
<datePattern value="yyyy-MM-dd" /> 
+0

¿Debe estar en versiones más nuevas solamente? No pude lograr que ese parámetro funcionara en mi sistema. Terminé de tener que usar .log dos veces, una vez en el valor del archivo y otra vez en datePattern :( – Sun

+1

Creo que se agregó en 1.2.12 –

Cuestiones relacionadas