Как заставить log4Net \ log4Net.Async работать после перезапуска службы IIS? - PullRequest
0 голосов
/ 09 апреля 2019

Я использую log4net и log4net.Async в своем приложении для журналов. Это хорошо работает в моей локальной среде (VS2017). Когда я выпускаю его и публикую на сервере IIS, он хорошо работает в момент запуска. Но после того, как я утилизация службы , она больше не может записывать журналы, файл журнала все еще там, но внутри него нет сообщений журнала.

Я установил разрешение для папки журнала (READ \ WIRTE) дляВСЕ уже.

есть моя конфигурация журнала:

    <appender name="InfoRollingFileAppender" type="log4net.Appender.RollingFileAppender">
      <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />      
      <param name="Encoding" value="utf-8" />
      <param name="File" value="D:\Log\Info\" />
      <param name="AppendToFile" value="true" />
     <param name="rollingStyle" value="Date" />
      <param name="datePattern" value="yyyyMMdd\\yyyy-MM-dd-HH.'Info.log'" />

      <param name="staticLogFileName" value="false" />     
      <layout type="AsPay.GateWay.Log.AsRefundAccLayout">
        <conversionPattern value="--logtime:%date --:%-5level--msg:%Logtxt --:%CallType%newline" />
      </layout>    
      <filter type="log4net.Filter.LevelRangeFilter">
        <param name="LevelMin" value="INFO" />
        <param name="LevelMax" value="INFO" />
      </filter>

    </appender>
     <appender name="asyncForwarder" type="Log4Net.Async.AsyncForwardingAppender,Log4Net.Async">
      <appender-ref ref="InfoRollingFileAppender" />
    </appender>

    <root>
      <level value="DEBUG" />
      <appender-ref ref="asyncForwarder" />
    </root>
code in Global.asax:

    protected void Application_Start()
        {
            AreaRegistration.RegisterAllAreas();
            FilterConfig.RegisterGlobalFilters(GlobalFilters.Filters);
            RouteConfig.RegisterRoutes(RouteTable.Routes);
            BundleConfig.RegisterBundles(BundleTable.Bundles);

            System.IO.FileInfo fileinfo = new System.IO.FileInfo(Server.MapPath("~/log4net.Config"));
            log4net.Config.XmlConfigurator.Configure(fileinfo);
        }

Странная вещь после перезапуска IIS, файл журнала (например, 2019-04-10-00.Info.log) продолжает создаваться, но в файле журнала нет содержимого журнала. После перезапуска IIS не возникает проблем с функциональностью службы, кроме журнала.

...