怎样更改App.config内自定义的内容的值

明缘 2010-10-27 12:19:45
App.Config大体结构如下:
<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<configSections>
<section name="log4net" type="log4net.Log4NetHandler, log4net" />
</configSections>
<log4net>
<appender name="LogAppender" type="log4net.Appender.FileAppender" >
<param name="File" value="..\\logs\Log.txt" />
<param name="AppendToFile" value="ccc" />
<layout type="log4net.PatternLayout">
<param name="Pattern" value="%mp %-5p %p - %k%n" />
</layout>
<filter type="log4net.LevelFilter">
<param name="LevelMin" value="DEBUG" />
<param name="LevelMax" value="ERROR" />
</filter>
</appender>
<root>
<level value="DEBUG" />
<appender-ref ref="LogAppender" />
</root>
</log4net>
</configuration>

现在想在程序内更改<root>下 <level value="DEBUG" />这个value得值。
上网找过了大部分都是关于appSetting 和ConnectionStrings的修改。
现在主要是不知道如何读取到log4net这部分内容作为一个Object进行处理。难道还要自定义
一个类么?
...全文
207 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
机器人 2010-10-27
  • 打赏
  • 举报
回复

log4net.ILog logger = log4net.LogManager.GetLogger("test");
logger.Info("test my logger before");

MessageBox.Show(logger.IsDebugEnabled.ToString());

Uri configUri = new Uri(this.GetType().Assembly.CodeBase + ".config");
XElement appConfig = XElement.Load(configUri.AbsolutePath);
XElement level = appConfig.XPathSelectElement("//log4net/root/level");
level.SetAttributeValue("value", "DEBUG");
appConfig.Save(configUri.AbsolutePath);

log4net.LogManager.ResetConfiguration();

MessageBox.Show(logger.IsDebugEnabled.ToString());
logger.Info("test my logger after");
lonyjianhui 2010-10-27
  • 打赏
  • 举报
回复
用命名空间System.Xml里的XmlDocument和XmlNode类处理
wuyq11 2010-10-27
  • 打赏
  • 举报
回复
string configFileName = Application.ExecutablePath + ".config";
System.Xml.XmlDocument doc = new System.Xml.XmlDocument();
doc.Load(configFileName);
string configString = @"configuration/root/level[@value=' DEBUG']/value";
System.Xml.XmlNode configNode = doc.SelectSingleNode(configString);
if (configNode != null)
{
configNode.InnerText = "";
doc.Save(configFileName);
Properties.Settings.Default.Reload();
}

明缘 2010-10-27
  • 打赏
  • 举报
回复
up....

111,129

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧