Настройка логирования

Материал из ISPWiki
Перейти к: навигация, поиск

Все продукты на базе COREmanager умеют единую систему логирования. Все логи пишутся в каталог var. Функции для работы с журналами (логами) реализуют макросы и функции, которые описаны в файле mgrlog.h. С их помощью можно журналировать действия различной важности (уровня). Таким образом можно задать уровень детализации ее журнала, ограничив тем самым попадающую в него информацию.

Для использования журналирования необходимо:

  • указать имя модуля, воспользовавшись макросом MODULE;
  • включить журналирование с помощью функции Init, если модуль не является внешним приложением, то Init выполняется автоматически;
  • добавлять записи в журнал, используя функции LogInfo, Warning, LogError.

С полным перечнем функций для записи события в журнал можно ознакомится в полной документации по заголовочным файлам.

Во всех продуктах есть веб-интерфейс для настройки логирования. Раздел, который позволяет для каждого модуля задавать уровень детализации прямо из панели менеджера. В этом разделе можно предоставить доступ к настройке журналирования внешнего приложения, разместитв функцию AddBinary в MODULE_INIT одного из модулей системы.

Пример использования функций журналирования:

mymodule.cpp:

#include <mgr/mgrlog.h>
MODULE("mymodule");

class MyAction : public Action {
public:
  MyAction() : Action("showlast", MinLevel(lvRegistered)) {}
  virtual void Execute(Session& ses) const {
    STrace();
  }
};

MODULE_INIT(mymodule, "") {
  new MyAction;
  mgr_log::AddBinary('myapp');
}

myapp.cpp:

#include <mgr/mgrlog.h>
ISP_MAIN(int argc, _TCHAR *argv[]) {
  mgr_log::Init('myapp');
}