Журналы событий клиента ASB
В текстовые файлы журналов событий Проект.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, записаны не будут.
Журналируемые события могут возникать в различных подсистемах.
-
При компиляции меню журналируются синтаксические ошибки.
-
Журналируются некоторые события оконной подсистемы.
-
Журналируются ошибки интерпретатора ASL - в том числе при исполнении
ASL-модулей и NTF-модулей, при вызове процедуры из меню, при вычислении
оконных выражений, при исполнении утилиты REB.
-
Процедура LOGMSG позволяет записывать в журнал
сообщения из прикладной программы.
Записи файлов журналов событий Проект.ecn и Проект.ead содержат
следующие поля.
-
Дата и время события.
-
Имя пользователя, который запустил программу. Если имя пользователя не
определено, поле содержит строку "UNKNOWN\UNKNOWN".
-
Имя компьютера, на котором запущена программа.
-
Дескриптор транзакции. Поле может быть пустым, например, если запись сообщает
об ошибке при компиляции меню.
-
Путь к модулю, где произошло событие. Если событие произошло при интерпретации
аргумента оператора CALL в меню, поле имеет значение "". Если модуль
не был загружен, поле содержит имя головного модуля без пути.
-
"08/12/2008 14:43:54" - дата и время модификации файла модуля, где произошло
событие. В некоторых случаях, например, если головной модуль не загружен или
событие произошло при интерпретации опций CALL или CallBP в меню,
дата и время являются пустыми. Поле содержит представление пустых
даты и времени: "" или "00/00/1980 00:00:00".
-
Размер файла модуля для модулей типов ASL, AEL, NTF, DBS. Для модулей остальных
типов и в случае, если модуль не был загружен, поле имеет значение 0.
-
Первая часть позиции модуля, в которой произошла ошибка. Для WDO-модуля: поле
зоны в формате Zones(Номер зоны).Fields("Имя поля"). Для остальных
модулей: номер строки, где произошло событие. Если событие произошло при
интерпретации опции CALL в меню, поле имеет значение 1.
Если модуль не был загружен, поле имеет значение 0.
-
Вторая часть позиции модуля, в которой произошла ошибка. Для WDO-модуля:
позиция в выражении. Для остальных модулей: номер колонки. Если событие
произошло при интерпретации опции CALL в меню, поле указывает
на номер символа в аргументе. Если модуль не был загружен, поле имеет
значение 0.
-
Описание. Если запись является уведомлением или предупреждением, описание
начинается с соответствующего текста: "Уведомление:" или "Предупреждение:".
Затем могут быть указаны класс, код и текст исключения. Если запись является
уведомлением об обработанном исключении, указывается, где обработано
исключение: имя модуля, номер строки и номер колонки. Если запись является
предупреждением, приводится текст предупреждения.
-
Только в записях файла журналов событий Проект.ead. Дескриптор
транзакции, которая блокировала ресурс, в результате чего к нему не смогла
получить доступ транзакция, выбросившая исключение.