Empresas
Empleos
  • Sobre nosotros
  • Soluciones
    • Publicación de vacantes
      Publica tu vacante y recibe candidatos calificados en 48h.
    • Evaluación de candidatos
      500+ pruebas técnicas y psicológicas, más anti-fraude.
    • Headhunting
      Búsqueda ejecutiva a la medida de principio a fin.
    • Nómina + EOR
      Dispersión de nómina y EOR en más de 15 países de LATAM.
  • Precios
  • Empleos

0

492
Vistas
¿Por qué obtengo dos archivos de registro por día usando log4net con el servicio web ASMX?

Tengo un servicio web ASMX que ejecuta IIS 10 y he agregado log4net al proyecto con la siguiente configuración:

 <appender name="AsmxDebugLogFile" type="log4net.Appender.RollingFileAppender"> <file value="App_Data/ASMX.DEBUG_" type="log4net.Util.PatternString" /> <appendToFile value="true" /> <rollingStyle value="Composite" /> <datePattern value="yyyy-MM-dd'.log'" /> <maximumFileSize value="5GB" /> <staticLogFileName value="false" /> <layout type="log4net.Layout.PatternLayout"> <conversionPattern value="%date [%thread] %-5level %logger - %message%newline" /> </layout> </appender> <logger name="AsmxDebugLogFile"> <level value="DEBUG" /> <appender-ref ref="AsmxDebugLogFile" /> </logger>

Pero por alguna razón, obtengo dos archivos de registro por día en el formato yyyy-MM-dd.log.yyyy-MM-dd.log según la captura de pantalla a continuación, aparentemente también en momentos aleatorios, por lo que el archivo de registro cambiará al archivo de registro recién creado y luego comenzará a iniciar sesión nuevamente en el archivo de registro que se creó a la medianoche del día en cuestión. Todos los archivos de registro también están muy por debajo del tamaño máximo de archivo de 5 GB.

Dos archivos de registro log4net por día

A continuación se muestra una lista actualizada de archivos de registro

ingrese la descripción de la imagen aquí

Parece que inicialmente, log4net inicia sesión en el archivo yyyy-MM-dd.log, y luego, después de un período de tiempo aleatorio, crea un nuevo archivo de registro yyyy-MM-dd.log.yyyy-MM-dd.log comienza a escribir en este log y luego regresa y se registra en yyyy-MM-dd.log que se creó al comienzo del día.

Estas son las configuraciones de reciclaje de IIS

Configuración de IIS

Quiero 1 archivo de registro por día en el formato ASMX.DEBUG_yyyy-MM-dd.log. ¿Dónde me estoy equivocando con esta configuración?

ACTUALIZAR

Parece que debido a que estamos reciclando el grupo de aplicaciones cada 60 minutos dependiendo de si el archivo de registro se está escribiendo en este momento, depende de si se crea uno nuevo. Cualquier sugerencia sobre cómo superar este problema. En este momento, agregué el process_id en el nombre del archivo de registro y parece funcionar porque obtengo un nuevo archivo de registro creado cada hora, pero idealmente quiero solo 1 archivo de registro por día.

over 4 years ago · Santiago Trujillo
3 Respuestas
Responde la pregunta

0

Uso log4net para todas mis aplicaciones y nunca encontré esta recreación de archivo después de un reciclaje de grupo.

Aquí están mis parámetros que difieren de los suyos:

 <appendToFile value="true"/> <staticLogFileName value="true" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>

Y así es como el comportamiento será diferente:

  • staticLogFileName significa que el nombre del archivo del día actual siempre será el mismo ( ASMX.DEBUG_.log aquí). Se renombrará automáticamente con el patrón de fecha del día siguiente.
  • appendToFile significa que no sobrescribirá el archivo del día actual, sino que lo agregará.

Creo que esos dos primeros parámetros evitarán la creación de varios archivos para el día actual, lo que puede solucionar su problema.

  • El papel de MinimalLock es menos claro para mí, pero debo mencionarlo de todos modos:

Abre el archivo una vez por cada ciclo AcquireLock()/ReleaseLock(), manteniendo así el bloqueo por la mínima cantidad de tiempo. Este método de bloqueo es considerablemente más lento que FileAppender. ExclusiveLock pero permite que otros procesos muevan/eliminen el archivo de registro mientras continúa el registro.

over 4 years ago · Santiago Trujillo Denunciar

0

<appender name="AsmxDebugLogFile" type="log4net.Appender.RollingFileAppender"> <lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>

Creo que necesita un modelo de bloqueo que no bloqueará su archivo. Creo que cuando se crea el archivo principal y se bloquea. El agregador de archivos crea un nombre de archivo con la misma marca de fecha y hora sobre el archivo existente. También debe usar la ruta remota para iniciar sesión como \\server\file\debug, ya que es posible que tenga un equilibrador de carga para IIS o que el servidor web esté alojado con IP estática o F5.

over 4 years ago · Santiago Trujillo Denunciar

0

Prueba con estos parámetros.

 <param name="File" value="C:\YourLogFilePath\" /> <rollingStyle value="Composite" /> <param name="DatePattern" value="dd.MM.yyyy'.log'" /> <param name="AppendToFile" value="true" /> <maxSizeRollBackups value="2" /> <maximumFileSize value="5GB" /> <staticLogFileName value="false" /> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
over 4 years ago · Santiago Trujillo Denunciar
Responde la pregunta
Encuentra empleos remotos

¡Descubre la nueva forma de encontrar empleo!

Top de empleos
Top categorías de empleo
Empresas
Publicar vacante Precios Comercial
Legal
Términos y condiciones Política de privacidad
© 2026 PeakU Inc. All Rights Reserved.
Andres GPT
Recomiéndame algunas ofertas
Necesito ayuda