2012-10-06 42 views
10

¿Es posible escribir desde 5 procesos diferentes en el mismo archivo de registro?Archivo de escritura Log4Net de muchos procesos

Estoy usando Log4Net para el registro, pero parece que solo 1 proceso está escribiendo en el archivo, cuando cierro este proceso, el 2do proceso está escribiendo.

Quiero que todos escriban juntos.

Cómo?

Respuesta

15

Si desea escribir en un solo archivo desde múltiples procesos añadir el MinimalLock como LockinModel a su nodo <appender>:

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

Cuidado con esto tendrá algún impacto en el rendimiento.

5

Aunque el consejo de @ Erwin funciona en la mayoría de los casos, debería reconsiderar si una mejor arquitectura puede ayudar a mejorar el rendimiento.

Por ejemplo, el servidor Microsoft IIS tiene muchos procesos de trabajo ejecutándose, cada uno enviando entradas de registro al proceso de servicio de IIS a través de un conducto con nombre. Y solo el proceso de servicio de IIS tiene derecho a escribir en los archivos de registro. De esta forma, los procesos de trabajo no necesitan bloquear archivos de registro, y el proceso de servicio puede almacenar entradas en caché y escribirlas en lotes.

Es muy fácil seguir el enfoque de IIS y lograr un buen rendimiento. sin bloqueos de archivos.

(actualizado:. Ahora puede utilizar LogMaster4Net, que implementa una arquitectura tales basado en UDP)

Cuestiones relacionadas