Журналирование

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

Каждая запись в журнале может относиться к одному из следующих типов:
  • Информация.

  • Предупреждение.

  • Аудит.

  • Ошибка.

Журнал Docsvision разбит на три разных части:
  • Система — записи в этом журнале фиксирует сервер Docsvision. Сюда могут попадать как ошибки, так и аудит низкоуровневых операций, выполняемых сервером Docsvision.

  • Безопасность — в этом журнале фиксируются результаты аудит операций над объектами, для которых он явно настроен.

  • Приложения — в этот журнал попадают операции, фиксируемые конкретными приложениями (Делопроизводство, Управление процессами, и т.д.). Сюда же попадают все сообщения от решений сторонних разработчиков.

В системном журнале (Система) автоматически фиксируются следующие низкоуровневые операции сервера:
  • Операции с карточками:

    • Создание карточки.

    • Пометка карточки как удалённой.

    • Пометка карточки как прочитанной.

    • Удаление карточки.

    • Копирование карточки.

    • Изменение прав карточки.

    • Добавление карточки к теме обработки.

    • Архивирование карточки.

    • Разархивирование карточки.

    • Открытие карточки (если оно производилось из Windows-клиента).

    • Экспорт карточки (если он производился из Windows-клиента).

  • Операции со строками:

    • Добавление строки.

    • Обновление строки.

    • Удаление строки.

    • Перемещение строки.

    • Копирование строки.

    • Изменение прав доступа к строке.

  • Безопасность:

    • Изменение прав доступа к строке.

    • Изменение прав доступа к карточке.

    • Изменение прав доступа к файлу.

    • Изменение прав доступа к элементу.

    • Изменение прав доступа к отчёту.

    • Изменение прав доступа к типам карточек.

  • Операции с файлами:

    • Создание файла.

    • Открытие файла.

    • Запись в файл.

    • Закрытие файла.

    • Удаление файла.

    • Изменение прав доступа к файлу.

    • Копирование файла.

    • Замена файла.

    • Выгрузка файла из базы данных.

    • Загрузка файла в базу данных.

    • Архивирование файла.

    • Разархивирование файла.

  • Операции с нумераторами:

    • Изменение левой границы нумератора.

    • Изменение правой границы нумератора.

    • Выделение номера.

    • Выделение диапазона номеров.

    • Освобождение номера.

    • Освобождение диапазона номеров.

  • Операции с ярлыками:

    • Создание ярлыка.

    • Удаление ярлыка.

    • Перемещение ярлыка.

    • Копирование ярлыка.

Разработчику на платформе доступны следующие возможности при работе с журналом (все они требуют наличия административных привилегий для выполнения):

  • Получение определённого набора записей из журнала по фильтру.

  • Поиск конкретной записи в журнале.

  • Удаление записей из журнала.

  • Изменение стратегии автоматической очистки журнала.

  • Экспорт и импорт записей журнала в формат XML.

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

Разработчики карточек могут расширять набор журналируемых операций, для этого в редакторе библиотеки CardManager на вкладке Log необходимо определить новые операции, указать их идентификатор, псевдоним и имя:

Определение операций журнала
Рисунок 1. Определение операций журнала

Дополнительные атрибуты операций (Columns) определяются там же. Необходимо указать их псевдоним, тип данных и имя. Колонку можно ассоциировать с какой-либо операций или указать, что она обязательна для всех операций данной библиотеки.

При записи Custom-сообщения в журнал приложение должно сформировать xml-документ по схеме EventData.xsd и сохранить там все дополнительные атрибуты.

Для работы с журналом предназначен специальный объект LogManager, доступ к которому можно получить из объекта сессии (UserSession).

Первоочередной задачей является установка стратегии журнала, указав параметры хранения записей. Сделать это можно вызвав метод LogManager.SetLogStrategy с соответствующими параметрами.

Записывать собственные сообщения в журнал можно вызывая метод LogMessage или LogMessageEx.

Поиск сообщений осуществляется методом FindMessages, а более полную информацию по конкретному сообщению можно получить вызывая GetMessage или GetMessageDetails.