使用log4net进行Web.config转换

时间:2016-05-04 10:04:38

标签: c# log4net

在本地调试配置中,我想登录txt文件。它的工作。登录Azure Blob存储也可以正常工作。但是我想配置第二个只能用于" Azure调试"配置。

我在web.debug.azure.config中创建了简单的转换。

- >的web.config

<log4net debug="true">
<root>
  <level value="Info" />
  <appender-ref ref="Appender"/>
</root>
<appender name="Appender" type="log4net.Appender.RollingFileAppender" >
 // Configuration stuff
</appender>

它已经设置为&#34; Debug&#34;构建配置。构建&#34; Azure调试&#34;我想替换&#34;&#34;用它:   - &GT; Web.Debug.Azure.config

 <appender xdt:Transform="Replace" xdt:Locator="Match(name)" name="Appender" type="log4net.Appender.AzureAppendBlobAppender, log4net.Appender.Azure">
// Configuration stuff
</appender>

当我这样做的时候。第一个仍然工作,第二个没有。为什么?怎么做?

1 个答案:

答案 0 :(得分:0)

卸载C#项目并修改csproj文件以添加AfterBuild任务,以便您的Web.Debug.Config转换为Web.Azure.Debug.Config

如果需要,请在以下导入项目路径中修改Visual Studio版本 -  微软\ VisualStudio的*的 v14.0 \ web应用\ Microsoft.WebApplication.targets *

注意:如果您想在CI服务器上执行此操作,则可能需要使用Slow Cheetah或类似设备,如果项目附带Visual Studio实例没有Visual Studio实例。

  <PropertyGroup>

        <TransformInputFile>Web.config</TransformInputFile>
        <TransformFile>Web.Debug.config</TransformFile>
        <TransformOutputFile>Web.Debug.Azure.config</TransformOutputFile>    
      </PropertyGroup>

 <Import Project="$(MSBuildExtensionsPath32)\Microsoft\VisualStudio\v14.0\WebApplications\Microsoft.WebApplication.targets" />

<Target Name="AfterBuild">
        <Message Text="=== Transform to Azure Debug ===" />
        <TransformXml Source="$(TransformInputFile)" Transform="$(TransformFile)" Destination="$(TransformOutputFile)" />
      </Target>