Log4net не создает файл журнала на производственном сервере - PullRequest
0 голосов
/ 07 ноября 2018

Я знаю, что по переполнению стека уже задано много вопросов по log4net, но они не могут решить мою конкретную проблему.

Для моего приложения используется приведенная ниже конфигурация log4net.

<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="E:\Logs\" />
    <datePattern value="yyyy-MM-dd'_APP.log'" />
    <appendToFile value="true" />
    <immediateFlush value="true" />
    <rollingStyle value="DATE" />
    <staticLogFileName value="false" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date||%2thread||%-5level||%logger||%message%newline" />
    </layout>
  </appender>
</log4net>

Я пропустил некоторые неинтересные части. При использовании этой конфигурации приложение не регистрируется на рабочем сервере. На моем локальном ПК для разработки он работает нормально. Когда я включаю режим отладки log4net, я вижу, что он не может получить доступ к каталогу "E: \ Logs \", потому что доступ запрещен.

Я уже добавил все необходимые разрешения в эту папку. Теперь вот часть, которую я не понимаю. После некоторой отладки я обнаружил, что добавление чего-либо после тега \ неожиданно работает. Таким образом, конфигурация ниже работает нормально.

<log4net>
  <appender name="RollingLogFileAppender" type="log4net.Appender.RollingFileAppender">
    <file value="E:\Logs\x" />
    <datePattern value="yyyy-MM-dd'_APP.log'" />
    <appendToFile value="true" />
    <immediateFlush value="true" />
    <rollingStyle value="DATE" />
    <staticLogFileName value="false" />
    <maxSizeRollBackups value="10" />
    <layout type="log4net.Layout.PatternLayout">
      <conversionPattern value="%date||%2thread||%-5level||%logger||%message%newline" />
    </layout>
  </appender>
</log4net>

Это создает файл журнала x2018-11-07_APP.log, но я не хочу добавлять x ...

Может кто-нибудь объяснить мне, почему он так себя ведет?

Спасибо!

1 Ответ

0 голосов
/ 07 ноября 2018

Ответ, предоставленный Филдором, сработал как шарм.

<file value="E:\Logs\.log" /> 
<datePattern value="yyyy-MM-dd'_APP'" /> 
<preserveLogFileNameExtension value="true"/>

Все еще странно, что он отлично работает на ПК для разработки.

...