Какие классы .Net лучше всего использовать для создания регистратора приложений - PullRequest
1 голос
/ 15 марта 2012

Мне нужно создать регистратор для приложения .net (я не могу использовать стороннюю платформу). Требования к регистратору:

  1. Регистратор должен быть конфигурируем из файла .config безостановка приложения.Он должен иметь разные уровни для ведения журнала.

  2. Назначением журнала должен быть консольный и текстовый файл (настраивается)

  3. Регистратор должен иметь возможность создаватьдругой файл журнала, если достигнут максимальный размер файла, и должен прекратить запись в журнал, если на диске недостаточно места.

  4. Регистратор должен работать в обычном режиме и режиме дросселирования.Он должен прекратить запись в журнал, если по какой-то причине происходит постоянная ошибка (скажем, сервер не работает).

Пожалуйста, укажите, какие классы .net лучше всего использовать для создания регистратора.

Ответы [ 3 ]

2 голосов
/ 15 марта 2012

Чтобы ответить на ваш вопрос, вы можете использовать класс System.Diagnostics.Trace для вывода сообщений в вашем приложении. Вы можете настроить его с TraceListeners, который может выводить на консоль, файл или другие источники данных.

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

1 голос
/ 15 марта 2012

Взгляните на пространство имен System.Diagnostics и особенно на класс Trace:

http://msdn.microsoft.com/en-us/library/system.diagnostics.trace.aspx

0 голосов
/ 15 марта 2012

Вам помогут следующие пространства имен: System.Diagnostics и System.Reflection

Вот пара реализаций, которые вы можете использовать в качестве начала:

http://www.codeproject.com/Articles/21338/A-C-Central-Logging-Mechanism-using-the-Observer-a

http://www.codeproject.com/Articles/3953/Logger-in-C-An-easy-way-for-monitoring-NET-applica

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