2014-09-25 95 views
0

我正在使用SLF和Log4Net进行日志记录。我希望将根记录器级别设置为ALL,以编译为DEBUG模式的实例,并在为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

你知道,当转换部署唯一的工作,对不对?不只是构建? – 2014-09-26 22:08:36

+0

不,我没有。这是我第一次尝试使用Visual Studio的转换功能。你有任何关于转型的参考或任何有用的文件吗? – formixian 2014-09-29 16:43:23

+0

顺便说一下,如果转换只适用于DEPLOY,那么它是如何工作的标准桌面应用程序未部署,但打包在安装程序项目内? – formixian 2014-09-29 16:45:21

回答

2

要在部署方案外部运行web.config变换,您可能会发现SlowCheetah Visual Studio程序包很有用。这个包可以自动将您的app.config(或任何文件)当你按下F5在Visual Studio:

你有没有:

  • 希望有不同的appSettings调试时解除构建你的应用程序
  • 想要在构建应用程序时根据您的构建配置使用不同的连接字符串?
  • 想要用干净简单的语法来转换任何XML文件吗?
  • 想要以前卫的方式调整WCF服务配置吗?
  • 想要预览您的XML转换,而无需构建/发布您的应用程序?
  • 想要在web项目之外转换文件以及发布Web项目吗?

如果您对其中的任何一个回答“是”,那么您应该下载此软件包。

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