app.configファイルに加えられた変更を監視するようにlog4netを構成しました。
[assembly: log4net.Config.XmlConfigurator(Watch = true)]
アプリを実行して構成ファイルの内容を変更すると、これらの変更はアプリを再起動したときにのみ有効になります。なぜこれができるのでしょうか?
app.configの変更を監視するようにlog4netに指示する方法もありますか?好き:
<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」を使用すると、その機能が有効になります。