Windsor castle:如何通过LoggingFacility动态设置log4net filePath

时间:2014-09-02 20:55:43

标签: c# .net logging log4net castle

我正在使用log4net来记录城堡记录器。这是我的安装设置。我有一个名为log4net.config的配置文件,其中创建了所有log4net设置。

container.AddFacility<LoggingFacility>(
          f =>
              f.LogUsing(LoggerImplementation.Log4net)
               .WithConfig(Path.Combine(AssemblyDirectory, "log4net.config")));
              container.AddFacility<TypedFactoryFacility>();

log4net.config文件中,filePath设置为:

<configuration>
  <log4net>
    <appender name="RollingFileCompositeAppender" type="log4net.Appender.RollingFileAppender">
      <file value="c:\LoggerFolder\MyLogFile.log" />
      .....
  </log4net>
</configuration>

要使用此功能,我需要ILogger记录器并使用logger.Error("xyz");

一切都很完美。

现在我要更改&#34; c:\LoggerFolder\MyLogFile.log&#34;的日志文件路径运行时,用户定义该路径时的其他内容。

如何在应用程序运行时动态更改此路径?

1 个答案:

答案 0 :(得分:0)

使用此语法将Log4net加载到监视模式;将观察到对配置文件的任何更改,并将重新加载配置文件。因此,为了更改日志文件路径,只需更改文件内容即可设置新的日志文件路径。

您可以通过手动更改某些设置来观察此行为,例如写入日志文件的文件夹名称