Файл log4net не создается при развертывании в COM-объекте

Пытаюсь интегрировать log4net dll в один из проектов. он отлично работает, когда я запускаю его локально. Однако, когда я пытаюсь развернуть проект как COM-объект удаленно, он не создает никаких файлов журнала в заданном месте. К вашему сведению, я использую .net framework 2 для этого проекта

Я внес все изменения, упомянутые в следующей ссылке, но мне все равно не повезло

  1. Log4net не записывает файл журнала
  2. Log4net не создает файл журнала

AssesmblyInfo.cs

[assembly: log4net.Config.XmlConfigurator(ConfigFile = "app.config", Watch = true)]

app.config

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

  <log4net>
    <appender name="TestAppender" type="log4net.Appender.RollingFileAppender">
      <file type="log4net.Util.PatternString" value="D:\\log\\SchT%date{yyyyMMdd}.log" />
      <encoding value="utf-8"/>
      <appendToFile value="true"/>
      <rollingStyle value="Date"/>
      <!--<rollingStyle value="Size" />
      <maxSizeRollBackups value="5" />
      <maximumFileSize value="5MB" />
      <staticLogFileName value="true" />-->
      <datePattern value="yyyyMMdd" />
      <layout type="log4net.Layout.PatternLayout">
        <conversionPattern value="%date %level [%thread] %type.%method - %message%n"/>
      </layout>
    </appender>
    <root>
      <level value="All"/>
      <!-- If the following line is not included the log file will not be created even if log4net is configured with this file. -->
      <appender-ref ref="TestAppender"/>
    </root>
  </log4net>

  <startup>

    <supportedRuntime version="v2.0.50727"/>
  </startup>
</configuration>

Контроллер

log4net.Config.XmlConfigurator.Configure();
           _log = log4net.LogManager.GetLogger
    (System.Reflection.MethodBase.GetCurrentMethod().DeclaringType);

Когда я отлаживаю его, _log получает все уровни журнала как ложные. Я подозреваю, что app.config не загружается должным образом, поэтому файл не создается.

Любая идея?


person user1030128    schedule 23.01.2017    source источник
comment
когда я пытаюсь развернуть проект как COM-объект удаленно - не могли бы вы рассказать об этом подробнее?   -  person stuartd    schedule 23.01.2017
comment
Вероятно, он ищет app.config в базовом каталоге домена приложений, на котором размещается log4net. Если это COM-объект, базовый каталог, скорее всего, будет каталогом, в котором находится неуправляемый исполняемый файл, загружающий COM-объект. Попробуйте изучить AppDomain.CurrentDomain.BaseDirectory во время отладки.   -  person Joe    schedule 23.01.2017
comment
Спасибо, Джо. Оно работает.   -  person user1030128    schedule 24.01.2017