Документация COREmanager

Настройка логирования (debug.conf)

Все продукты на базе COREmanager умеют единую систему логирования. Все логи пишутся в каталог var. При достижении максимального размера (по умолчанию 100Мб) содержимое лога перемещается в каталог var/logs и пакуется. К имени файла добавляется суффикс — дата и время создания, а так же, порядковый номер (на случай, если за секунду лог будет перемещен более одного раза). Оригинальный файл при этом обрезается и первой строкой в него записывается имя только что созданного архива.

COREmanager позволяет гибко настраивать детализацию логов. Все настройки (для всех продуктов) записываются в файл etc/debug.conf. Он может содержать комментарии (все, что идет после символа #), глобальные настройки (начинаются с префикса SET), и настройки детализации для отдельных продуктов и модулей.

Из глобальных настроек в данный момент доступны:

max_log_size максимальный размер лога в байтах, при превышении которого он будет перемещен в каталог var/logs color использовать или не использовать цветные логи (возможные значение on/off, по умолчанию — on) storage возможные значения: file (записывать лог в файл), console (выводить содержимое лога в stdout)

Примеры:

SET color=off # отключить цветные логи
SET mgrctl.max_log_size=1048576 # установить максимальный размер лога var/mgrctl.log в один мегабайт

Настройка детализации имеет следующий формат:

<имя лога>[.<имя модуля>] <уровень детализации> [дополнительные условия]

имя лога имя файла в каталоге var. Как правило, совпадает с именем бинарника, который этот файл пишет. имя модуля различные компоненты библиотек libmgr или libispapi имеют различные внутренние имена. Например, для отладки взаимодействия панели с внешними сервисами может быть полезно выставить максимальный уровень детализации для модуля rpc. уровень детализации целое число в диапазоне от 0 (не писать ничего) до 9 (максимально возможная детализация) дополнительные условия иногда бывает полезно поднять уровень детализации для определенных вызовов. Например, вы можете потребовать писать детальную информацию только для запросов, приходящих от определенного пользователя или с определенного IP. Условия можно указать только для логов панелей управления. На данный момент в условиях можно использовать следующие значения: realuser, user, level, ip, action, id, displayname, realdisplayname.

Примеры:

* 6 # установить для всех модулей всех логов уровень детализации 6
mgrctl.* 5 # установить для mgrctl.log уровень детализации 5
core.* 9 ip=192.168.1.1 # установить для core.log уровень детализации 9, но только для запросов приходящих с адреса 192.168.1.1
core.* 9 user~test # установить для core.log уровень детализации 9, но только для запросов приходящих от пользователей в имени которых содержится подстрока test

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

Настройки логирования читаются при старте приложения. Можно заставить панель перечитать настройки, послав ей сигнал HUP