首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >log4net在web.config表单测试代码中更改LogLevel

log4net在web.config表单测试代码中更改LogLevel
EN

Stack Overflow用户
提问于 2017-10-23 12:25:55
回答 2查看 168关注 0票数 0

下面是我的服务log4net web.config的配置部分

代码语言:javascript
复制
<log4net>
  <appender name="OutputDebugStringAppender">
    ...
  </appender>
  <appender name="RollingFileAppender">
    ...
  </appender>
  <appender name="EventLogAppender" type="log4net.Appender.EventLogAppender">
    ...
  </appender>
  <root>
    <level value="INFO"/>
    <appender-ref ref="OutputDebugStringAppender"/>
    <appender-ref ref="RollingFileAppender"/>
    <appender-ref ref="EventLogAppender"/>
  </root>
</log4net>

在功能测试( functional,C#)准备过程中,我希望通过链接到现有的web.config文件将C#更改为web.config

--编辑--

把事情弄清楚。这不是单元测试。这是E2E测试,用于部署到test-env的生产服务工件。我唯一能做的就是修改web.config文件。

!--编辑--

目前,我有两个想法:

1)将web.config解析为XML文件,

2)使用regex (我知道我会遇到两个问题:)

我想知道是否有一种通用的方法来更改日志级别(也许是某种用于log4net的C#配置API?)

实现这一目标的最佳解决方案是什么?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-10-24 08:45:41

有时最简单的解决方案就是最好的解决方案。我已经放弃了寻找log4net机制和regex解决方案。最后的版本是:

代码语言:javascript
复制
XmlDocument doc = new XmlDocument();
doc.Load(configFilePath);
XmlNode node = doc.SelectSingleNode("//log4net/root/level");
node.Attributes["value"].Value = "DEBUG";
doc.Save(configFilePath);
票数 0
EN

Stack Overflow用户

发布于 2017-10-23 12:55:04

不需要编辑配置文件。可以在运行时将测试类更改为日志级别:

代码语言:javascript
复制
((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).Root.Level = Level.Debug;
((log4net.Repository.Hierarchy.Hierarchy)LogManager.GetRepository()).RaiseConfigurationChanged(EventArgs.Empty);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/46889328

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档