【问题标题】:log4net configuration transformation for different build configurations不同构建配置的 log4net 配置转换
【发布时间】:2016-05-17 07:27:45
【问题描述】:

我正在使用配置转换扩展来在我的 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>

【问题讨论】:

  • 当您在 VS 中调试应用程序时,我不是在解决发布或发布配置,而是在解决调试配置。我不想在调试时收到通知电子邮件,所以我必须有正确的转换语句才能删除 SmtpAppender。
  • 单击构建/重建时配置文件转换 - 修改后的 .config 文件会自动复制到 Bin\Debug 或 Bin\Release 文件夹。我认为您忽略了一个事实,即它是 Windows 服务,而不是 Web 应用程序,并且我已经修改了此服务,它可以像普通应用程序一样进行调试。如果不使用 3rd 方工具,除了 Web 应用程序之外的任何其他项目类型都无法进行配置文件转换。我只需要知道如何使用转换语句排除该 SmtpAppender。
  • 你是在声明 XDT 命名空间吗?
  • 是的,我在 .config 文件中有 schemas.microsoft.com/XML-Document-Transform">。
  • 连接字符串之类的简单替换可以正常工作。

标签: configuration windows-services log4net config-transformation


【解决方案1】:

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

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

【讨论】:

    猜你喜欢
    • 2011-12-03
    • 1970-01-01
    • 1970-01-01
    • 2014-02-05
    • 2011-09-05
    • 1970-01-01
    • 2011-07-30
    • 2015-09-17
    • 2014-11-02
    相关资源
    最近更新 更多