Статистика использования монитора - Как это сделать? - PullRequest
5 голосов
/ 17 декабря 2008

Windows, Firefox или Google Chrome отслеживают статистику использования и анализируют отчеты о сбоях. Я думаю о реализации той же функции в моем приложении.

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

У кого-нибудь есть предложения?

Уточнение: я работаю над настольным приложением и не использую СУБД

Ответы [ 3 ]

1 голос
/ 18 декабря 2008

У Джоэла была статья в блоге о чем-то вроде этого - его приложение ломает ловушку и затем связывается со своим сервером с некоторыми подробностями. Я думаю, что он проверяет дубликаты и выбрасывает их. Это отличная система, и я был впечатлен, когда прочитал ее.

http://www.fogcreek.com/FogBugz/docs/30/UsingFogBUGZtoGetCrashRep.html

Мы сделали это в месте, где я находился, где был настроен общедоступный сервер для приема данных. Я не парень из БД и у меня нет серверов, которые я контролирую в общественных сетях. У моих личных проектов, к сожалению, пока нет этой замечательной функции.

1 голос
/ 17 декабря 2008

В статье «Отладка приложений .Net 2.0» Джон Роббинс (из Wintellect) подробно пишет о том, как создавать и отлаживать отчеты о сбоях (миниатюрные дампы windbg / SOS). Его класс Superassert содержит код для их генерации. Будьте осторожны - для правильной настройки требуется много усилий: серверы символов, исходные серверы, а также хорошее знание VS2005 и windbg. Однако его книга проведет вас через весь процесс.

Что касается статистики использования, я часто связывал это с авторизацией, то есть пользователь имеет право выполнять определенную задачу. Проще говоря, это может быть такой метод (ApplicationActions - это перечисление):

public static bool HasPermission( ApplicationActions action )
{
    // Validate user has permission.
    // Log request and result.
}

Этот метод может быть добавлен к одноэлементному классу SercurityService. Как я уже сказал, это слишком просто, но должно указывать на то, какую услугу я имею в виду.

0 голосов
/ 18 декабря 2008

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

http://msdn.microsoft.com/en-us/library/cc309506.aspx

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