Я использую log4net с точкой доли 2010. У меня есть функция, которая автоматически добавляет log4net конфигурацию, когда мой soultion развернут в режиме ошибки, используя следующий кодSPWebConfigModification - Особенность перезаписи друг друг модификации
SPWebService service = SPWebService.ContentService;
service.WebConfigModifications.Clear();
//ADD log4Net config section
service.WebConfigModifications.Add(new SPWebConfigModification()
{
Path = "configuration/configSections",
Name = "section[@name='log4net']",
Sequence = 0,
Owner = CREATE_NAME,
Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode,
Value = string.Format(@"<section name='log4net' type='log4net.Config.Log4NetConfigurationSectionHandler, log4net, Version={0}, Culture=neutral, PublicKeyToken={1}' />", LOG4NET_VERSION, LOG4NET_PUBLIC_KEY_TOKEN)
});
string log4netConfig = @"<log4net>
<appender name='RollingFileAppender' type='log4net.Appender.RollingFileAppender'>
<file value='C:\\logs\\Logger.log' />
<appendToFile value='true' />
<rollingStyle value='Composite' />
<datePattern value='yyyyMMdd' />
<maxSizeRollBackups value='200' />
<maximumFileSize value='50MB' />
<layout type='log4net.Layout.PatternLayout'>
<conversionPattern value='%d [%t] %-5p %c [%x] <%X{auth}> - %m%n' />
</layout>
</appender>
<root>
<level value='ERROR' />
<appender-ref ref='RollingFileAppender' />
</root>
</log4net>";
//add error default config
service.WebConfigModifications.Add(new SPWebConfigModification()
{
Path = "configuration",
Name = "log4net",
Sequence = 0,
Owner = CREATE_NAME,
Type = SPWebConfigModification.SPWebConfigModificationType.EnsureChildNode,
Value = log4netConfig
});
service.Update();
service.ApplyWebConfigModifications();
Я хотел для создания другой функции, которая переписывает режим ошибок в log4net и меняет его на отладку, так что конечный пользователь не должен модифицировать веб-конфигурацию вручную. Проблема заключается в том, когда активирована вторая функция, она удаляет все, добавленное первой функцией.
Является ли это стандартным поведением? Любая активируемая функция удаляет изменения с помощью другой функции.
EDIT 2
Шаги для репликации
Создать 2 функции. оба из них должны добавить несколько различных записей в веб-конфигурацию.
- Активировать функцию 1 - Функция 1 изменения в веб-конфигурации
- Активировать функцию 2 - Функция 2 изменения в веб-конфигурации, но имеют 1 изменения прошли
Деактивировать обе особенности
- Активировать функцию 2 - Функциональные изменения 2 находятся в веб-конфигурации
- Активировать функцию 1 - Fea ры 1 изменения в веб-конфигурации, но имеют 2 изменения прошли
Спасибо за ответ. Лемме проверите его один раз, и я вернусь к вам. – Anand
Спасибо. Надеюсь, это устранит вашу проблему. Если нет, пожалуйста, дайте мне знать. –
Ах, все нормально. Я начал писать эту функцию, скопировав другую функцию, и эта вещь появилась. Спасибо за вашу помощь. +50 – Anand