Мне поручили проект с большим количеством плохо написанного кода, основанного на SharePoint.
Он состоит из около 15 подпроектов, некоторые из которых являются службами Windows, некоторые веб-службы, некоторые веб-приложения, работающие внутри SharePoint, некоторые являются веб-частями и даже консольными приложениями. Все они работают на одном сервере и обращаются друг к другу.
В производстве уже есть много проблем, но их трудно отследить.
Первоначальный разработчик, должно быть, был поклонником либо серии Сэлинджера, либо серии Pokémon, судя по его неустанным усилиям по улову всех исключений. К сожалению, ни о каких из них никогда не сообщают и не регистрируют.
Моя текущая задача - ввести ведение журнала для всего проекта, чтобы я мог находить теперь невидимые исключения, отслеживать запутанные повторяющиеся вызовы и иметь хотя бы некоторые трассировки стека. Я решил использовать NLog, потому что он активен и крут, в отличие от log4net, что прекрасно, но несколько не так на мой вкус.
Поскольку компоненты тесно связаны, я хочу централизовать ведение журнала в одном файле, чтобы связанные ошибки не распределялись по жесткому диску. Поэтому я хочу иметь два или три разных файла журнала с пятью или более проектами, записывающими в каждый из них более или менее одновременно.
Как лучше всего настроить NLog для централизованного ведения журнала? Должен ли я иметь файл конфигурации для каждого проекта или связанные проекты должны совместно использовать их? Куда мне поместить файл конфигурации для ведения журнала из веб-частей SharePoint? У меня возникнут проблемы с разрешениями?
Я использую SharePoint 2007.