Куда мне поместить файл журнала для приложения asp.net?

У меня есть приложение ASP.NET, для которого мы написали собственный модуль ведения журнала.

У меня вопрос, а где стандартное место для записи файла журнала? Т.е. веб-сайт будет работать как анонимный пользователь (например, IUSR на IIS7), и мне нужно место, где я знаю, что у него будет разрешение на запись.

Ваше здоровье,

Ответов (6)

Решение

Папка App_Data в корне проекта. Он не обслуживается веб-запросами; так что другие люди не могут его выследить.

Push the app_data - лучшая идея, просто имейте в виду, что при публикации проектов, если отмечена опция «Удалить все существующие файлы перед публикацией», то текущие данные в папке исчезнут. Обходной путь - пропустить удаление папки app_data.

Другой вариант ведения журнала - использовать существующий фреймворк, например Log4net.

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

В любом случае вам нужно будет дать учетной записи «Сетевая служба» права «Изменить» для нужной папки.

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

Я не могу изменять разрешения для папок (особенно за пределами домашней папки виртуального каталога), и у меня еще нет папки App_Data, поэтому я немного не решаюсь пойти с этим.

Если у вас есть веб-сайт, очевидно, что у вас где-то есть папка. Вы не можете добавить подпапку (не выходящую в Интернет)? Похоже, это было бы более подходящим местом для хранения журналов, чем их сброс в глобальную общую папку.

Вы также можете войти в журнал событий Windows или в таблицу в базе данных. Как часто люди просматривают журнал событий? Если он изучается на регулярной основе, запись в таблицу значительно упрощает составление отчетов, поскольку тривиально изменить порядок и показать только последние X событий за текущий период времени. Журнал событий Windows вы также можете запросить журнал событий Windows через PowerShell или LogParser .

Я не могу изменять разрешения для папок (особенно за пределами домашней папки виртуального каталога), и у меня еще нет папки App_Data, поэтому я немного не решаюсь пойти с этим.

Итак, на данный момент я использую папку CommonApplicationData.

  • В Vista / Server 2008 это C: \ ProgramData \
  • В XP / Server 2003 это C: \ Documents and Settings \ All Users \ Application Data \