Я разработал библиотеку, которая используется архитектурой надстроек в другом приложении.Моя библиотека использует log4net для ведения журнала.
Это отлично работает при тестировании, поскольку местоположение файла app.config может быть разрешено, а log4net настраивается с помощью:
log4net.Config.XmlConfigurator.Configure();
При загрузке как надстройкав этом случае невозможно разрешить конфигурацию приложения, используя этот метод.
Один из вариантов - настроить log4net с использованием конфигурации, передаваемой через архитектуру надстройки.Конфигурация, которая может использоваться, похожа на результаты следующего:
string asmFile = System.Reflection.Assembly.GetExecutingAssembly().Location;
System.Configuration.Configuration dllConfig = System.Configuration.ConfigurationManager.OpenExeConfiguration(asmFile);
Как можно System.Configuration.Configuration использоваться с log4net.Config.XmlConfigurator?
Я вижу соответствующий ConfigurationSection из конфигурации, но не вижу способа легко получить ILoggerRepository или XmlElement, требуемый для XmlConfigurator.Configure () .
System.Configuration.ConfigurationSection configSection = configuration.GetSection("log4net");