Подтвердить что ты не робот

Что вы регистрируете в своих настольных приложениях для повышения стабильности?

Я начал использовать SmartInspect в своих приложениях Delphi, потому что мои пользователи сталкивались с ошибками/проблемами, которые я не мог воспроизвести на своей машине. Когда у меня есть общее представление о проблеме, я буду контролировать приложение в нескольких конкретных местах, чтобы подтвердить, что это или не работает.

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

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

ПРИМЕЧАНИЕ. Я использую SmartInspect, но я предполагаю, что ответы должны быть подходящими для любого пакета регистрации.

4b9b3361

Ответ 1

Вот некоторые рекомендации, которые я пытался реализовать в моем собственном блоке регистрации OpenSource, но он довольно общий, и, как вы заявляете, он должен быть подходящим для любого пакета протоколирования

  • Сделайте несколько уровней (мы используем множество) ведения журнала, чтобы настроить необходимую информацию о регистрации;
  • Запишите все исключения, даже обработанные с блоком try...except, и добавьте список классов исключений, не заслуживающий регистрации (например, EConvertError) - например. наш модуль может регистрировать все исключения с помощью глобального исключения "hook" (no try..except для добавления в ваш код) и обрабатывать список классов исключений, которые следует игнорировать;
  • Записывать все "фатальные" ошибки, такие как проблемы с подключением к базе данных или неправильный синтаксис SQL, должны выполняться, хотя "зарегистрировать все исключения" предыдущий элемент;
  • Для таких исключений зарегистрируйте трассировку стека, чтобы узнать о вызывающем контексте;
  • Возможность записывать все SQL-запросы или доступ к базе данных;
  • Добавьте общий журнал регистрации пользовательского интерфейса, чтобы узнать, какие основные функции программного обеспечения, которое пользователь совершил (например, для каждой кнопки панели инструментов или пунктов меню): очень часто, когда пользователь сказал: "У меня есть это на моем экране/но я ничего не делал"... и когда вы увидите журнал, вы обнаружите, что "что-то" было сделано.;)
  • Отслеживать основные методы вашего приложения и связанные с ним параметры;
  • Ведение журнала - это эволюционирующая функция: используйте эти общие правила выше, а затем настройте свое ведение журнала из эксперимента в соответствии с вашими потребностями отладки.

Ответ 2

Для приложений с управлением через UI здесь важны основные инструменты:

  • События ActionManager или ActionList, когда выполняется действие (дает мне щелчок пользователя здесь, а затем здесь, а затем список).

  • Необработанные исключения с отслеживаниями с использованием отладки JCL идут прямо в моем основном журнале, тогда как если бы я использовал MadExcept или EurekaLog, исключения имеют свой собственный журнал.

  • Запуск, остановки и значительные события истории, связанные с историей

  • Предупреждения, ошибки, сбои функций API, сбои доступа к файлам, обработанные (пойманные) исключения.

Ответ 3

Текущее использование памяти может быть полезно для длительных процессов, чтобы увидеть, есть ли утечки памяти (что может привести к ошибке из памяти).