从第三方重定向log4net日志

Tot*_*oto 15 c# log4net

我有第三方使用如下所示的配置文件:

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
  <configSections>
    <section name="log4net" type="log4net.Config.Log4NetConfigurationSectionHandler,log4net" />
    <!--Others sections-->
  </configSections>

  <log4net>
    <appender name="RollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <file value=".\logs\logclient.txt" />
      <appendToFile value="false" />
      <rollingStyle value="Date" />
      <maximumFileSize value="1000KB" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date  [%thread] %-5level %logger [%ndc] - %message%newline" />
      </layout>
    </appender>
    <root>
      <level value="DEBUG" />
      <appender-ref ref="RollingFileAppender" />
    </root>
  </log4net>

</configuration>
Run Code Online (Sandbox Code Playgroud)

第三方中的代码如下所示:

LogManager.GetRepository(Assembly.GetCallingAssembly()), configFile);

LogManager.GetLogger(MethodBase.GetCurrentMethod().DeclaringType);
Run Code Online (Sandbox Code Playgroud)

我希望第三方dll使用我自己的配置文件中定义的自己的appender.我该如何管理这个?

NB:

  • 第三方需要使用自己的配置文件,因为其他部分是必需的,我不能将它们添加到我的文件中
  • 我可以修改第三方配置文件,我无法修改我的

Arn*_*lay 2

有两个现有问题提出了动态编辑 log4net 配置的解决方案: