C# 当应用程序构建为发行版时更改Log4Net根级别

C# 当应用程序构建为发行版时更改Log4Net根级别,c#,asp.net,log4net,C#,Asp.net,Log4net,我有一个使用log4net的项目,它工作得很好,但我想知道在调试和发布时是否可以覆盖日志根“level”属性的XML配置 当前我的根目录配置如下所示: <root> <level value="WARN"/> <appender-ref ref="LogFileAppender"/> <appender-ref ref="DebugAppender"/> </root> 在debug中构建解决方案时,将根日志记录级别更改为

我有一个使用log4net的项目,它工作得很好,但我想知道在调试和发布时是否可以覆盖日志根“level”属性的XML配置

当前我的根目录配置如下所示:

<root>
  <level value="WARN"/>
  <appender-ref ref="LogFileAppender"/>
  <appender-ref ref="DebugAppender"/>
</root>
在debug中构建解决方案时,将根日志记录级别更改为debug


这是否可能,我的想法是否是我想要的最佳实践型解决方案,我将如何做到这一点(或者你将如何做得更好)

我做oposite,在调试模式下我使用开发人员配置,这对我过滤相关消息更好;在发布模式下,我锁定级别以发出警告,以防止用户想要破解我的代码(他可以使用大量其他方式,但这是一个5秒的技巧):


嗨,迭戈,你能为用户破解你的代码提供一个例子吗?嗨,瑞奇,别指望它会被用作安全措施。我只是避免记录重要信息,这些信息会让用户轻松了解系统的行为。当然,任何人都可以使用RedGate的反射器或类似工具看到这一点。它只是阻止普通用户尝试做一些事情。但是任何高级的.net开发人员都可以绕过这个“安全”措施。
protected override void Application_Start(object sender, EventArgs e) {
  base.Application_Start(sender, e);
  XmlConfigurator.Configure();

  #if DEBUG
  //Change logging level to DEBUG
  #endif
}
public static void Initialize()
{

#if DEBUG
    ConfigureAndWatch();
#else
    ConfigureAndLockChanges();
#endif

}

#if DEBUG

private static void ConfigureAndWatch()
{
    XmlConfigurator.ConfigureAndWatch(new FileInfo("log4net.config"));
}

#else

private static void ConfigureAndLockChanges()
{
    // Disable using DEBUG mode in Release mode (to make harder to hack)
    XmlConfigurator.Configure(new FileInfo("log4net.config"));
    foreach (ILoggerRepository repository in LogManager.GetAllRepositories())
    {
        repository.Threshold = Level.Warn;
    }
}

#endif