Журналы событий клиента ASB

Файлы журналов событий Проект.ecn и Проект.ead

В текстовые файлы журналов событий Проект.ecn и Проект.ead записываются сообщения о необработанных исключениях, уведомления об обработанных исключениях, уведомления о замене в обработчике одного исключения другим, предупреждения и сообщения о прочих событиях. Файлы размещаются в одной папке, определенной для расширения ecn в RED-файле. Фактически сообщение может быть записано в другой файл, см. альтернативные файлы журналов событий.

Каждая строка файла является записью и состоит из полей, отделенных друг от друга точкой с запятой. Значение поля может быть заключено в двойные кавычки, например, если содержит пробелы. Поля, представляющие дату и время имеют вид "31/07/2010 15:55:05". Такой формат файлов позволяет, например, импортировать их содержимое в документы Microsoft Excel.

Исключения классов Exc_Halt, Exc_Raise и Exc_TermByUser не журналируются. Информация об исключениях класса Exc_AccessDeny записывается в файл журнала событий Проект.ead. Информация об исключениях остальных классов записывается в файл журнала событий Проект.ecn. Кроме того, в файл журнала событий Проект.ecn записываются предупреждения.

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

Журналируемые события могут возникать в различных подсистемах.

  1. При компиляции меню журналируются синтаксические ошибки.
  2. Журналируются некоторые события оконной подсистемы.
  3. Журналируются ошибки интерпретатора ASL - в том числе при исполнении ASL-модулей и NTF-модулей, при вызове процедуры из меню, при вычислении оконных выражений, при исполнении утилиты REB.
  4. Процедура LOGMSG позволяет записывать в журнал сообщения из прикладной программы.

Записи файлов журналов событий Проект.ecn и Проект.ead содержат следующие поля.

  1. Дата и время события.
  2. Имя пользователя, который запустил программу. Если имя пользователя не определено, поле содержит строку "UNKNOWN\UNKNOWN".
  3. Имя компьютера, на котором запущена программа.
  4. Дескриптор транзакции. Поле может быть пустым, например, если запись сообщает об ошибке при компиляции меню.
  5. Путь к модулю, где произошло событие. Если событие произошло при интерпретации аргумента оператора CALL в меню, поле имеет значение "". Если модуль не был загружен, поле содержит имя головного модуля без пути.
  6. "08/12/2008 14:43:54" - дата и время модификации файла модуля, где произошло событие. В некоторых случаях, например, если головной модуль не загружен или событие произошло при интерпретации опций CALL или CallBP в меню, дата и время являются пустыми. Поле содержит представление пустых даты и времени: "" или "00/00/1980 00:00:00".
  7. Размер файла модуля для модулей типов ASL, AEL, NTF, DBS. Для модулей остальных типов и в случае, если модуль не был загружен, поле имеет значение 0.
  8. Первая часть позиции модуля, в которой произошла ошибка. Для WDO-модуля: поле зоны в формате Zones(Номер зоны).Fields("Имя поля"). Для остальных модулей: номер строки, где произошло событие. Если событие произошло при интерпретации опции CALL в меню, поле имеет значение 1. Если модуль не был загружен, поле имеет значение 0.
  9. Вторая часть позиции модуля, в которой произошла ошибка. Для WDO-модуля: позиция в выражении. Для остальных модулей: номер колонки. Если событие произошло при интерпретации опции CALL в меню, поле указывает на номер символа в аргументе. Если модуль не был загружен, поле имеет значение 0.
  10. Описание. Если запись является уведомлением или предупреждением, описание начинается с соответствующего текста: "Уведомление:" или "Предупреждение:". Затем могут быть указаны класс, код и текст исключения. Если запись является уведомлением об обработанном исключении, указывается, где обработано исключение: имя модуля, номер строки и номер колонки. Если запись является предупреждением, приводится текст предупреждения.
  11. Только в записях файла журналов событий Проект.ead. Дескриптор транзакции, которая блокировала ресурс, в результате чего к нему не смогла получить доступ транзакция, выбросившая исключение.