Вам нужно настроить его до создания первого регистратора.
Для этого:
Ваш основной класс (Program.cs) не должен иметь регистратора
Основной метод не должен ссылаться ни на какие классы, имеющие регистратор.
Затем вы можете настроить log4net в основном методе.
В качестве альтернативы вы можете использовать класс-оболочку для создания экземпляров регистраторов, что обеспечивает настройку log4net перед созданием регистратора, например:
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;
}
}