Log4net войти в систему разработчика, но на тестовом сервере не входит - PullRequest
9 голосов
/ 28 марта 2012

Я использую log4net 1.2.11.Итак, ведение журнала работает на компьютере разработчика, но когда я публикую его на тестовом сервере, оно не работает.Отладка удаленно, я увидел, что журнал загружается правильно в переменную ILog, но когда он вызывает log.Error (), ничего не происходит, нет файла журнала, нет исключения log4net.

Любые идеи?

Obs: я использую log4net на веб-сайте asp.net mvc 3.

- РЕДАКТИРОВАТЬ

Я поставил FullУправление ВСЕМ ... ничего не меняется, нет файла журнала.

Ответы [ 4 ]

8 голосов
/ 28 марта 2012

Включите отладку log4net, чтобы получить больше информации о проблеме. Без этого log4net завершается сбоем молча, и очень трудно устранять проблемы конфигурации.

Проверка Как включить внутреннюю отладку log4net? в FAQ4 log4net

Примите во внимание, если у вас есть проблемы с разрешениями (как указывалось Shyju ), что удостоверение по умолчанию для IIS 7.5 - ApplicationPoolIdentity, а не Network Service

Здесь у вас есть инструкции о том, как защитить ресурсы для ApplicationPoolIdentity , Проверьте раздел «Обеспечение безопасности ресурсов»

5 голосов
/ 28 марта 2012

Убедитесь, что у папки достаточно прав для ASP.NET, чтобы записать в нее файл.Скорее всего, это причина , если она работала на компьютере разработчика

Некоторые обходные пути

в вашей обработке Dev удалите файл журнала и папку и запустите его как новый и посмотрите,это создает файл журнала.Если да, то нечего менять в коде.Это должно быть разрешением.Итак, давайте дважды проверим разрешения

Как и Клаудио Реди , упомянутый в его ответе, Вы также можете включить внутреннюю отладку log4net для получения дополнительной информации.Обратитесь к разделу " Как включить внутреннюю отладку log4net? " для получения дополнительной информации по этой ссылке http://logging.apache.org/log4net/release/faq.html

Из их документации

Почему я не могу войти в FileAppender из веб-приложения?

Веб-приложение запускается как специальная учетная запись пользователя на веб-сервере ASPNET.Эта учетная запись имеет ограниченные разрешения для защиты веб-сервера от атак.По умолчанию эта учетная запись может не иметь разрешения на запись в файловую систему.Убедитесь, что у учетной записи ASPNET есть разрешение на создание и запись в файлы в каталоге, выбранном для ведения журнала.

2 голосов
/ 20 ноября 2016

В моем случае ссылка на log4.config внутри web.config была неправильной:

<add key="log4net.Config" value="log4.config"/>

указывает на корневую папку, а на моем компьютере разработчика log4.config фактически была, поэтому ведение журналабудет работать.

Однако в сборке log4.config копируется в папку bin, единственное место, где она будет после развертывания.

Изменение web.config на

<add key="log4net.Config" value="bin/log4.config"/>

заставил регистрацию работать везде для меня

0 голосов
/ 25 сентября 2018

Убедитесь, что у папки журнала есть разрешение для AppPool по умолчанию enter image description here

Если разрешения нет, добавьте DefaultAppPool в группу enter image description here

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...