Давайте начнем с контекста!Хороший способ разработки Logger DLL для приложения для веб-приложений и окон
На моей работе меня попросили добавить некоторые функции журнала в мой проект, веб-приложение в ASP.NET.
Что я думал, это хорошо, я мог бы сделать это только для моего проекта, но это не очень полезно! Поэтому я хочу создать DLL, которая может использоваться в других проектах (приложениях webapps или windows).
Так я планировал эти функциональные возможности:
XML-файла для конфигурации: LogLevel файла, расположение файла, время хранения его, максимальный размер перед записью в новый файл журнала. Например, у меня может быть файл журнала, в котором будут записываться только журналы ERROR и CRITICAL и другой файл, в котором будут записаны INFO и WARNING LOGS.
- Возможность войти в веб-приложение, или для победы приложение
Но вот проблемы, я имею в виду разного вещей, которые могут пойти не так, и я хотел быть уверен, от того, что я делаю до его разработки.
Прежде всего, мне нужно будет определить, является ли это веб-приложение или приложение для Windows. Я нашел некоторые вещи, которые могут быть полезны, например, this one
Тогда я думаю о том, как будут записываться журналы, каждый раз, когда я буду писать строку журнала, мне придется открыть и закрыть файл. Я чувствую, что это очень жадно в спектаклях. Я ошибаюсь ? Есть ли другой способ сделать это?
Следует также указать, что может возникнуть проблема при регистрации как из веб-приложений, так и из многопоточных приложений Windows. Другая проблема заключается в том, что метод журнала может вызываться дважды (2 раза) одновременно, что создает проблему одновременного доступа к файлу журнала. Каков наилучший способ решения этих проблем?
Наконец-то, интересно, видите ли вы какие-либо другие вещи, которые могут быть проблемой для такого типа dll?
Благодарим за помощь! :)
Хотя вы, безусловно, можете написать хорошую библиотеку журналов многократного использования, ваше время, вероятно, лучше потрачено на использование существующей библиотеки ведения журнала. –
Посмотрите на 'log4net' или' nlog' или что-то еще. Они уже решили большинство ваших проблем.Почему вам нужно различать приложения для Web и Desktop? –
Возможно, вы ищете https://msdn.microsoft.com/en-us/library/ff648951.aspx – r1verside