que ejemplo debug c# .net log4net

c# - ejemplo - Seguridad del hilo de log4net



log4net nuget (3)

Parece haber cierta discusión sobre si log4net es seguro para subprocesos, el consenso es que el marco es seguro para subprocesos, pero los agregadores no son y deben ser utilizados correctamente para lograr la seguridad de subprocesos. ¿Alguien puede arrojar algo de luz sobre esto y posiblemente dar ejemplo de, digamos que RollingFileAppender se usa de manera segura para subprocesos? ¿Necesita ser empujado en contexto? de alguna manera bloqueado, o que?


Pero he tenido un punto muerto con ColoredConsoleAppender. ¡Y las sources comentarios indican que el escritor interno (m_consoleOutputWriter) no es seguro para subprocesos!

/// <summary> /// The console output stream writer to write to /// </summary> /// <remarks> /// <para> /// This writer is not thread safe. /// </para> /// </remarks> private System.IO.StreamWriter m_consoleOutputWriter = null;

Y he cambiado de nuevo a ConsoleAppender básico y no tengo problemas desde entonces.


Según este link , RollingFileAppender es seguro para subprocesos (en lo que respecta al registro). Esto viene de uno de los desarrolladores de log4net. Específicamente dice que el bloqueo como este no es requerido en su código:

lock(logger) { logger.Info("Hello!"); }


Directamente desde la FAQ de log4net :

¿Log4net es seguro para subprocesos?

Sí, log4net es seguro para subprocesos.

Por lo tanto, no hay necesidad de bloqueo manual.