В разработке программного обеспечения, трассировка предполагает специализированное использование logging для записи информации о выполнении программы. Эта информация обычно используется программистами для отладки целей, а также, в зависимости от типа и детализации информации, содержащейся в журнале трассировки, опытными системными администраторами или персонал службы технической поддержки и инструменты мониторинга программного обеспечения для диагностики общих проблем с программным обеспечением. Трассировка - это сквозная проблема.
Не всегда существует четкое различие между трассировкой и другими формами ведения журнала, за исключением того, что термин трассировка почти никогда не применяется к журналированию, что является функциональным требованием программы (исключая регистрацию данных из внешнего источника, например сбор данных в эксперименте по физике высоких энергий и запись с упреждающей записью ). Журналы, в которых регистрируется использование программы (например, журнал сервера ) или события операционной системы, представляющие наибольший интерес для системного администратора (см., Например, Просмотр событий ), падают. в терминологическую серую зону.
Эта статья в основном посвящена трассировке в целях отладки или диагностики.
Трудности в проведении четкого разграничения между журналированием событий и программной трассировкой возникают из-за того, что одни и те же технологии используются для обоих, а также из-за того, что многие из критериев, которые различают эти два, являются непрерывными а не дискретный. В следующей таблице перечислены некоторые важные, но ни в коем случае не точные или универсальные различия, которые используются разработчиками для выбора технологий для каждой цели и которые определяют отдельную разработку новых технологий в каждой области:
Регистрация событий | Отслеживание программного обеспечения |
---|---|
Используется в основном системными администраторами | Используется в основном разработчиками |
Регистрирует "высокоуровневую" информацию (например, неудачную установку программы) | Регистрирует "низкий уровень" информация (например, выброшенное исключение ) |
не должно быть слишком «шумным» (содержать много повторяющихся событий или информация не полезна для целевой аудитории) | Может быть шумным |
A на основе стандартов формат вывода часто желателен, иногда даже необходим | Несколько ограничений на формат вывода |
Сообщения журнала событий часто локализованы | Локализация редко вызывает беспокойство |
Добавление новых типов события, а также новые сообщения о событиях не должны быть гибкими | Добавление новых сообщений трассировки должно быть гибким |
Регистрация событий предоставляет системным администраторам информацию, полезную для диагностики и аудита. Различные классы событий, которые будут регистрироваться, а также то, какие детали будут появляться в сообщениях о событиях, часто рассматриваются на ранних этапах цикла разработки. Многие технологии регистрации событий позволяют или даже требуют присвоения каждому классу событий уникального «кода», который используется программным обеспечением регистрации событий или отдельным средством просмотра (например, средством просмотра событий) для форматирования и вывода удобочитаемого сообщения. Это облегчает локализацию и позволяет системным администраторам более легко получать информацию о возникающих проблемах.
Поскольку регистрация событий используется для регистрации высокоуровневой информации (часто информации о сбоях), производительность реализации регистрации часто менее важна.
Особое внимание уделяется предотвращению "слишком частой" записи повторяющихся событий.
Трассировка программного обеспечения предоставляет разработчикам информацию, полезную для отладки. Эта информация используется как во время циклов разработки, так и после выпуска программного обеспечения. В отличие от регистрации событий программная трассировка обычно не имеет понятия «класс» события или «код события». Другие причины, по которым решения для регистрации событий, основанные на кодах событий, не подходят для программной трассировки, включают:
Еще одним важным фактором, который следует учитывать при отслеживании программного обеспечения, является производительность. Поскольку программная трассировка выполняется на низком уровне, возможный объем сообщений трассировки намного выше. Чтобы решить проблемы с производительностью, часто необходимо отключить трассировку программного обеспечения либо во время компиляции, либо во время выполнения.
Другие особые проблемы:
Программная трассировка :
Event ведение журнала:
Подходит для обоих:
Анализ трассировки состоит из извлечения знаний из выполнения программных систем. Один из видов анализа трассировки - это выравнивание трассы, он состоит из выявления частей в трассах, которые являются общими и соответствуют одному и тому же поведению. Выравнивание трассы - сложная проблема из-за размера трассы, а также из-за недетерминизма и шума в реальных трассировках.