#log4net
#log4net
Вопрос:
Я хочу поместить раздел приложения в другой файл, отличный от моего основного конфигурационного файла log4net.
Цель состоит в том, чтобы позволить мне опубликовать мое приложение с log4net.config, но не удалять некоторые данные, относящиеся к конкретным клиентам, такие как параметры smtp.
Идея состоит в том, чтобы иметь :
<logger name="DatabaseLogger">
<level value="ALL" />
<appender-ref ref="AdoNetAppender" />
<appender-ref ref="SmtpAppender" />
</logger>
<appender configSource="log4netsmtp.config"/>
log4netsmtp.config создается клиентами по соображениям безопасности (с моей помощью) и никогда не изменяется мной.
Извините за мой английский и спасибо, что прочитали меня.
С уважением
Ответ №1:
Вы можете загрузить его через GetManifestResourceStream сборки, чтобы получить ваш файл и обработать его как xml, затем для инициализации вашего регистратора вы можете использовать класс log4net.config.XmlConfigurator и передать ему свой экземпляр XmlElement или добавить свой XmlElement к существующей конфигурации log4net xml:
Assembly a = Assembly.GetAssembly(this.GetType());
Stream stream = a.GetManifestResourceStream("MyAssembly.ConfigFolder.logger.config");
XmlDocument xmlDoc = new XmlDocument();
xmlDoc.Load(stream);
// eventually append, modify, merge, check the xml with other info
XmlConfigurator.Configure(xmlDoc);