针对不同构建配置的 log4net 配置转换

log4net configuration transformation for different build configurations

我正在使用配置转换扩展在我的 Windows 服务应用程序的调试和发布构建配置中使用不同的设置。这是我的发布:

<root>
  <level value="ALL" />
  <appender-ref ref="DebugAppender"/>
  <appender-ref ref="SmtpAppender"/>
</root>

这是我的调试,我不想在其中使用 SMTP 附加程序,但它不起作用(记录的事件仍由 SMTP 发送):

<root>
  <level value="ALL" />
  <appender-ref ref="DebugAppender"/>
  <appender-ref ref="SmtpAppender" xdt:Transform="Remove"/>
</root>

解决方案比我想象的要简单:

<root>
  <level value="ALL" />
  <appender-ref ref="DebugAppender" />
  <appender-ref ref="SmtpAppender" xdt:Locator="Match(ref)" xdt:Transform="Remove"/>
</root>