Я сам столкнулся с этой проблемой. Хотя это не совсем то, что я бы назвал «идеальным», я думаю, что лучшим решением в настоящее время является использование метода ConfigureAndWatch
класса XmlConfigurator
. По сути, ваша сборка хоста настраивает конфигурацию log4net, используя определенный файл конфигурации. Когда ваши плагины загружаются, попросите их записать свои элементы конфигурации в раздел конфигурации log4net в том же файле конфигурации. Поскольку log4net велено следить за изменениями в этом файле с помощью ConfigureAndWatch
, когда в файл добавляются эти новые данные, log4net перезагрузит конфигурацию, которая теперь будет включать элементы конфигурации из подключаемых модулей.
Это немного глупо, но, похоже, работает. Следующий шаг, конечно же, будет перенесен в мою структуру ведения журналов, чтобы доступ к файлу конфигурации был федеративным.
Обратите внимание, что существует небольшая задержка между записью / сохранением конфигурации плагина и перезагрузкой обновленной конфигурации и ее применением в хранилище регистратора.