【发布时间】:2018-01-23 21:21:40
【问题描述】:
我将 log4net 配置为监视对 app.config 文件所做的更改。
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
当我运行我的应用程序并更改配置文件中的内容时,这些更改仅在我重新启动我的应用程序时生效。为什么会这样?
还有没有办法告诉 log4net 监视 app.config 中的变化?喜欢:
<appender name="FileAppender" type="log4net.Appender.FileAppender" >
<watch value="true" />
</appender>
------------- 编辑 -------------
我现在尝试使用单独的配置文件:log4net.config。
它看起来像这样:
<log4net>
<appender name="FileAppender" type="log4net.Appender.FileAppender">
<file value="c:\log.txt" />
<appendToFile value="true" />
<lockingModel type="log4net.Appender.FileAppender+MinimalLock" />
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%d [%t] %-5p %c (line %L) -- %m%n" />
</layout>
</appender>
<root>
<appender-ref ref="FileAppender" />
</root>
</log4net>
在我的 assemblyInfo.cs 中,我写了以下内容:
[assembly: log4net.Config.XmlConfigurator(ConfigFile = "log4net.config", Watch = true)]
记录到文件的类如下所示:
ILog myLogger = LogManager.GetLogger(typeof(Form1));
myLogger.Debug("test");
这和旧版本一样。生成了日志文件条目,但是当我在运行时更改 log4net.config 时,不会应用这些更改......“Watch=true”应该启用该功能,对吗?
【问题讨论】:
标签: log4net app-config watch appender