Pull to refresh

Sedge — приложение для автоматизированного создания отчетов об ошибках

Reading time5 min
Views1.8K

Небольшое лирическое отступление


Так получилось, что в последнее время я занимаюсь разработкой программ работающих в связке с различным оборудованием. На прошлой работе это были роботы и станции тестирования для полупроводниковой промышленности, на текущей – масс-спектрометры для химии и медицины. Казалось бы, совершенно различные отрасли и назначение программ, но с точки зрения разработчика есть много общих моментов.

Типичную конфигурацию, с которой мы работаем, можно описать так: станция, к которой присоединен клиентский компьютер. На компьютере установлено базовое приложение, взаимодействующее с оборудованием и предоставляющее интерфейсы для сбора данных. Этими интерфейсами пользуется десяток вертикальных приложений, необходимых для решения конкретных задач пользователя. Для решения одной задачи обычно необходимо взаимодействие двух-трех приложений. Весь этот набор приложений зависит от многочисленных конфигурационных файлов и генерирует большой объем отчетов и данных.

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

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


Как это работает


Для понимания принципа работы Sedge важны два понятия – Suite (набор приложений) и Application (приложение). Набор приложений может быть описан в одном или нескольких .sedge файлах и определяет для набора связанных программ общие свойства, такие как пользовательский интерфейс, общие файлы и метод отправки отчета.

Например, ваша компания может иметь базовый сервис, ответственный за доступ к данным и две программы для обработки и отображения этих данных. Тогда, набор состоит из трех приложений и может быть разбит на три конфигурационных файла: main.sedge, определяющий, что должно быть включено в отчет в случае ошибки в любом из приложений, app1.sedge и app2.sedge, задающих дополнительные параметры отчета, специфичные для соответствующего приложения. Файлы app1.sedge и app2.sedge могут добавляться или удаляться во время установки или деинсталляции программ.

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

Пример простого конфигурационного файла

<?xml version="1.0" encoding="UTF-8" ?>
<Sedge>
  <Suite name="LunarFrog.TaggedFrog" caption="TaggedFrog Error Reporting" partial="no">
    <Schedule>
      <Step name="Screenshot" />
      <Step name="ErrorDetails" />
      <Step name="Contacts" />
      <Step name="Collect" />
    </Schedule>

    <Transport name="Email">
      <Option name="to" value="error_mail@company.com" />
      <Option name="subject" value="Error report" />
    </Transport>

    <Report>
      <Group name="UserGroup" caption="User Information">
        <Page name="ImagePage" caption="Screenshot">
          <Temp name="screenshot" caption="Screen" />
        </Page>
        <Page name="InfoPage" caption="Information">
          <Temp name="ReportDetails" caption="Details"/>
          <Temp name="Contacts" caption="Contact Information" />
          <Temp name="UserFiles" />
        </Page>
      </Group>
      <Group name="EnvGroup" caption="Enviroment">
        <Page name="ProcessesPage" caption="Processes">
          <Data name="Processes" />
        </Page>
        <Page name="SystemPage" caption="System">
          <Data name="System" />
        </Page>
      </Group>
    </Report>

    <Application name="TaggedFrog" caption="TaggedFrog">
      <Report>
        <Group name="ApplicationGroup" caption="Application">
        </Group>
      </Report>
    </Application>

  </Suite>
</Sedge>

* This source code was highlighted with Source Code Highlighter.


Первый шаг визарда

image

Одна из страниц отчета, созданного согласно этой конфигурации

Report

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

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

Изменен может быть и внешний вид отчета, поскольку шаблон задается с помощью HTML и CSS. Любой текст (интерфейс, сообщения) доступен для замены или локализации. По умолчанию поддерживается английский и русский интерфейсы.

Информация о программе

Платформа: .NET Framework 2.0 / C# 3.0
Лицензия: MIT
Статус: Beta
Сайт: sedge.codeplex.com
Tags:
Hubs:
Total votes 12: ↑7 and ↓5+2
Comments0

Articles