2014-09-25 3 views
0

Я использую SLF и Log4Net для ведения журнала. Я хочу, чтобы уровень корневого регистратора был установлен равным ALL для экземпляра, скомпилированного в режиме DEBUG, и для INFO, когда он создан для RELEASE, устанавливается значение INFO. По некоторым причинам мое преобразование вообще не работает. Может ли кто-нибудь помочь мне в этом переводе?Преобразование Web.config не работает

Web.config:

<configuration> 

    <configSections> 
    <section name="slf" 
      type="Slf.Config.SlfConfigurationSection, slf"/> 
    <section name="log4net" 
      type="log4net.Config.Log4NetConfigurationSectionHandler,log4net"/> 
    </configSections> 

    <slf> 
    <factories> 
     <!-- log everything through the Log4netFacade --> 
     <factory type="SLF.Log4netFacade.Log4netLoggerFactory, SLF.Log4netFacade"/> 
    </factories> 
    </slf> 

    <log4net> 
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender"> 
     <file value="C:\logging\log.txt" /> 
     <appendToFile value="true" /> 
     <rollingStyle value="Size" /> 
     <maxSizeRollBackups value="10" /> 
     <maximumFileSize value="1MB" /> 
     <staticLogFileName value="true" /> 
     <layout type="log4net.Layout.PatternLayout"> 
     <conversionPattern value="%date %logger %username %level%newline - %message%newline" /> 
     </layout> 
    </appender> 
    <root> 
     <level value="INFO" /> 
     <appender-ref ref="RollingFileAppender" /> 
    </root> 
    </log4net> 

<!-- truncated web.config here --> 

</configuration> 

Web.Debug.config:

<configuration xmlns:xdt="http://schemas.microsoft.com/XML-Document-Transform"> 

    <log4net> 
    <root> 
     <level value="ALL" 
     xdt:Transform="Replace" 
     xdt:Locator="XPath(configuration/log4net/root/level[@value='INFO'])" /> 
    </root> 
    </log4net> 

    <system.web> 
    </system.web> 
</configuration> 

Спасибо!

+1

Вы знаете, что превращает только работу, когда вы устанавливаете, правильно? Не только на сборке? –

+0

Нет, я этого не делал. Это моя первая попытка использования функции преобразования Visual Studio. Есть ли у вас какие-либо ссылки или хорошая документация о трансформации? – formixian

+0

И, кстати, если преобразование работает только на DEPLOY, как это работает для стандартного настольного приложения, которое не развернуто, а упаковано внутри проекта установщика, который построен? – formixian

ответ

2

Чтобы запустить преобразование web.config за пределы сценария развертывания, как вы пытаетесь сделать, вы можете найти полезный пакет Visual Studio SlowCheetah. Этот пакет позволяет автоматически преобразовывать свой app.config (или любой другой файл) при нажатии клавиши F5 в Visual Studio:

вы когда-нибудь:

  • Требуется, чтобы иметь различные AppSettings для отладки и выпуска, когда создать свое приложение?
  • Хочет использовать разные строки подключения на основе вашей конфигурации сборки при создании приложения?
  • Требуется преобразовать любой XML-файл с чистым и простым синтаксисом?
  • Хотите настроить конфигурацию службы WCF прямолинейным способом?
  • Хотите просмотреть XML-преобразование без создания/публикации вашего приложения?
  • Требуется преобразовать файлы в дополнение к web.config для публикации для веб-проектов?

Если вы ответили «Да» на любой из них, вы должны загрузить этот пакет.

(от http://visualstudiogallery.msdn.microsoft.com/69023d00-a4f9-4a34-a6cd-7e854ba318b5)

Смежные вопросы