Project

General

Profile

LOG Analyser application

Назначение и функции приложения

Данное программное обеспечение предназначено для получения данных из лог файлов папки DBG_LOG, создаваемых приложениями DIGISPOT, их анализа, построения отчетов и графиков. Получение данных из лог файлов происходит аналогично, как для записи в системный журнал Windows с помощью приложения LogAnalyser Service] соответственно также предварительно разделяет получаемые данные из лог файлов на группы (типы) Сообщения также разделяются на 4 группы Exclude Error Warning и Information Вхождение сообщения в ту или иную группу определяется с помощью логических выражений (см [wikiDiDevProjectsLogAnalyser#Правилапостроениялогическихвыражений Правила построения логических выражений).

На основании полученных данных создается сводная таблица, состоящая из полей:

  • !ComputerName- наименование компьютера, на котором установлено приложение, вызвавшее событие записанное в лог;
  • !ServiceName- наименование приложения, вызвавшего событие;
  • !MessageType- наименование группы (тип), к которой было отнесено данное событие согласно соответствию его содержимого заданным логическим выражениям;
  • ThreadID - идентификатор потока;
  • !DateTime - дата и время события;
  • !GroupType - тип группы;
  • !RecordType - тип записи;
  • Message - текст сообщения события;
  • !ThreadName - наименование потока;
  • Duration - длительность (определяется по заданным условиям (см. Поле Duration (Длительность)) исходя из содержимого записи по вышеперечисленным полям).

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

Сохранение позиций по последним считанным из файлов лога данным, для дальнейшего дополучения вновь добавленных данных, осуществляется в системном реестре аналогично, как для приложения LogAnalyser Service] (см [wikiDiDevProjectsLogAnalyser#Веткасданнымивреестре Ветка с данными в реестре), поэтому, помощью соответствующей кнопки, можно дополучить информацию по вновь поступившим данным, что исключает необходимость полного переполучения данных.

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

Пользовательский интерфейс
h3. Главное окно

Основное окно приложения является окном MDI и позволяет создавать/открывать окна с данными по проектам, содержит следующие пункты и подпункты меню:

  • File > New project - создает окно нового проекта;
  • File > Open project - позволяет загрузить проект из файла;
  • File > Close All - закрывает окна всех открытых проектов;
  • File > Save - сохраняет в файл текущий проект;
  • File > Save as - сохраняет в другой файл копию текущего проекта;
  • File > Exit - закрывает все открытые окна проектов и завершает выполнение приложения;
  • Tools > Clear template data - удаляет временные данные (записи о позициях в реестре);
  • Project > Information by project "<имя проекта>" - выводит окно для просмотра и изменения наименования и описания текущего проекта;
  • Window - содержит список открытых окон проектов и позволяет выбрать проект как текущий.

Окно проекта

Окно проекта делится на 4 основные части:

  1. Меню
  2. Скрываемая панель для настройки фильтров, логических выражений групп, пути к каталогу с файлами логов
  3. Панель данных, содержащая вкладки по запросам
  4. Список сообщений и событий, возникающих в процессе работы с данными

Меню содержит следующие кнопки:

  • View/Hide filter panel - позволяет скрыть/показать панель с предварительными настройками;
  • Get data - кнопка выполнения процедуры получения данных согласно настроек проекта;
  • Get lastest data - кнопка, выполняющая процедуру дополучения новых данных к уже полученным;
  • Set fields - вызывает редактор дополнительных полей для построения графиков (см. редактор полей).

Панель настроек содержит:

  1. Списки фильтров с наименованиями Computer names (фильтр по полю ComputerName) и Application names (фильтр по полю ServiceName). Если данные фильтры активны (выставлена соответствующая галочка), то в итоговую таблицу попадут только те записи, которые по полям соответствуют заданным в списках фильтров значениям;
  2. Log files directory - Путь к файлам логов;
  3. Exspressions - редактор логических выражений для каждой группы, кнопка для установки значений по умолчанию;
  4. Exclude informations records from data list - признак исключения записей, соответствующих группе Information из итоговой таблицы.

Панель данных содержит вкладки по запросам, которые можно добавлять и удалять. Каждая вкладка содержит еще две вкладки, одна из которых отражает набор данных по запросу, параметры запроса, а вторая позволяет строить графики по указанным полям.

Вкладка Data (данные по запросу)

Данная вкладка содержит набор записей, соответствующих запросу и панель параметров запроса, которую можно вызвать и скрыть с помощью кнопки "Show/Hide panel of SQL query parameters", размещенной в меню вкладки Data. Панель параметров запроса позволяет задавать следующие его параметры:

  • Фильтры по основным полям в виде раскрывающихся списков ((Any) - оставить все данные по полю). Данные фильтры срабатывают сразу при изменении значения и не требуют нажатия кнопки "Apply".
  • for period - флаг, позволяющий ограничить данные по заданному временному интервалу
  • duration not empty - флаг определяет, что в результате выполнения запроса должны остаться только те записи, значение поля Duration у которых отлично от NULL
  • where- дополнительные условия по полям, записываемые как для любого SQL запроса в его части, именованной как "where"
  • order by - перечень полей для сортировки (запись как в SQL запросе в его части "order by")
  • Кнопка Apply - выполнить запрос
  • Кнопка Cancel - отменить выполненный запрос, вернуться к исходным данным

Вкладка Chart(графики по полям)

На вкладке размещен список полей, по значениям которых возможно построить график исходя из данных полученного запроса на вкладке Data. К данным полям относится поле Duration и все дополнительные поля, заданные с помощью редактора полей. На данной вкладке указывается тип графика, вычисляемое значение, периоды для группировки и поля, по данным которых будут построены графики. Графики могут быть 2-х видов в зависимости от типа значения указанного поля (числовой или логический типы).

Поле Duration (Длительность)

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

Группы разделяются пустой строкой. Каждая группа содержит условия (регулярные выражения) по требуемым полям и обязательно по полю Message, т.к. исходя из данных этого поля определяется значение. По полям, которым не задано регулярное выражение, проверка не осуществляется. По тем полям, которым задано регулярное выражение (кроме поля Message), результат может быть только как логическая истина или ложь, результаты проверок по полям суммируется через AND, и если результат является истиной - определяется значение поля записи исходя из данных поля Message по заданному регулярному выражению, которое обязательно должно включать в себя группу duration (? … ), полученное значение которой и будет значением поля Duration.

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

Правило записи регулярных выражений, разбитых по полям и группам в файле duration.txt:

<наименование поля1 гр.1> = <регулярное выражение1>

<наименование поля2 гр.1> = <регулярное выражение2>

<пустая строка>

<наименование поля1 гр.2> = <регулярное выражение3>

<наименование поля2 гр.2> = <регулярное выражение4>

<пустая строка>

<наименование поля1 гр.3> = <регулярное выражение5>

Наименования полей:

  • SourceName - Наименование приложения, к которому относится запись
  • ThreadID - Идентификатор потока
  • DateTime - Дата и время записи
  • GroupType - Тип группы
  • RecordType - Тип записи
  • Message - Сообщение записи
  • ThreadName - Наименование потока

Для Message обязательна одна группа duration (? … ), определяющая значение для записи по данному полю.

Пример записи:

SourceName = !^.*

Message = dur:(?![0-9][ ]?).

<пустая строка>

Message = !^(?[ ,0-9]!{9}) :

Редактор полей

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

Поля можно добавлять и удалять, задавать тип значения поля, в зависимости от чего меняется правило записи и условие проверки корректности регулярного выражения по полю Message. В случае, если тип значения по полю Boolean, регулярное выражение по полю Message должно возвращать логический результат ложь или истина, если тип значения Numeric, то в регулярном выражении по полю Message обязательно должна присутствовать группа value (?), определяющая значение в записях по данному полю. Если полученное значение не удается привести к числовому типу, то устанавливается значение равное NULL. Корректность записи регулярного выражения проверяется и считается относительно верной, если над списком условий по полям присутствует надпись "OK" зеленого цвета, иначе указана причина не корректной записи, отмеченная красным цветом.

Настройки поля можно сохранить в файл шаблона, данные из которого также можно применять для вновь созданных полей с помощью кнопок на панели "Condition groups by field".

Скачать MS Chart add-on, примеры и документацию для разработчиков можно с http://code.msdn.microsoft.com/mschart

Установка

Дистрибутив LogAnalyser находится во вложении данного документа. Для его установки необходимо скачать архив и распаковать его в любое место на диске. Исполняемый файл LogAnalyser.exe.

Для работы приложения требуется наличие .NET Framework v.2.0

Add picture from clipboard (Maximum size: 742 MB)