Debe configurarlo antes de que se cree una instancia del primer registrador.
Para ello:
su clase principal (Program.cs) no debería tener un registrador
El principal método no debe hacer referencia a las clases que tienen un registrador.
A continuación, puede configurar log4net en el método principal.
Alternativamente, puede utilizar una clase contenedora para crear instancias de los madereros, que asegura log4net se configura antes de crear un registrador, por ejemplo:
static class Log4NetHelper
{
private static bool _isConfigured;
static void EnsureConfigured()
{
if (!_isConfigured)
{
... configure log4net here ...
_isConfigured = true;
}
}
public static ILog GetLogger(string name)
{
EnsureConfigured();
log4net.ILog logger = log4net.LogManager.GetLogger(name);
return logger;
}
}
¿Qué se supone que tiene que hacer? No parece ayudar nada en mi caso. –
Se supone que debe 1) decirle a log4net que se configure usando la configuración predeterminada (app.config) 2) haga que log4net recargue automáticamente su configuración cuando el archivo subyacente que contiene la entrada log4net cambie. –
Agregar esta línea me funciona. ¡Aclamaciones! – ysrb