Log4Net работает на компьютере разработчика, происходит сбой при развертывании на общем хосте (с использованием той же самой базы данных / connstring) - PullRequest
4 голосов
/ 22 августа 2010

У меня настроен log4net и он отлично работает на моей локальной машине, однако при развертывании на моем хосте (godaddy) происходит сбой в автоматическом режиме.Я использую одну и ту же базу данных / конфигурационный файл на моей машине разработчика и на хосте.Моя ссылка на log4net настроена на копирование локально, а log4net.dll, .pdb и .xml существуют в корзине на хосте.Это приложение asp.net mvc.

Редактировать: исключений не выдается, и приложение работает должным образом (за исключением ведения журнала)

Это работает на SQLServer 2005 Веб-хостом является IIS 7

. Существенные подробности моей конфигурации:

<root>
  <level value="DEBUG" />
  <appender-ref ref="AdoNetAppender" />
</root>

<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
  <bufferSize value="1" />

  <connectionType value="System.Data.SqlClient.SqlConnection, System.Data, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" />

У кого-нибудь есть идеи по поводу проверок?

Ответы [ 2 ]

7 голосов
/ 23 августа 2010

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

То, что вы можете попробовать, это включить внутреннее ведение журнала log4net.Вы можете сделать это, добавив следующее в ваш appSettings раздел:

<add key="log4net.Internal.Debug" value="true" />

Это устанавливает свойство LogLog.InternalDebugging в true.log4net теперь будет регистрировать стандартные потоки вывода и ошибок и настроенные прослушиватели трассировки.

Вы можете использовать следующую конфигурацию для захвата любых сообщений, зарегистрированных в трассировке:

<system.diagnostics>
  <trace autoflush="false" indentsize="4">
    <listeners>
      <add name="myListener"
        type="System.Diagnostics.TextWriterTraceListener"
        initializeData="c:\TextWriterOutput.log" />
      <remove name="Default" />
    </listeners>
  </trace>
</system.diagnostics>

Все сообщения, зарегистрированные log4net внутри, появятся в TextWriterOutput.log.Если при добавлении прослушивателя трассировки в вашу конфигурацию вы получите SecurityException, то весьма вероятно, что у удостоверения приложения нет достаточных прав для создания файла в указанном месте (в примере: c:\).Попробуйте другое местоположение или предоставьте удостоверению приложения достаточные права.

1 голос
/ 21 февраля 2011

Я только что смог решить эту проблему, загрузив и использовав последнюю сборку log4net (редакция 1072765) из репозитория SVN http://svn.apache.org/viewvc/logging/log4net/trunk/

Видимо, эта проблема была исправлена ​​давно, но кто знаеткогда выйдет log4net 1.2.11.

...