Log4Net работает на Dev-машине, не работает при развертывании на общий хост (с использованием того же db/connstring)

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

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

Это работает на SQL Server 2005 Веб-хостинг - IIS 7

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

<root>
 <level value="DEBUG">
 </level></root>
<appender name="AdoNetAppender" type="log4net.Appender.AdoNetAppender">
 <buffersize value="1">
 </buffersize></appender>

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

2 ответа

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

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

Это устанавливает свойство 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">
 </remove></add></listeners>
 </trace>
</system.diagnostics>

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


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

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

licensed under cc by-sa 3.0 with attribution.