SER модуль Xlog


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


Спецификаторы.


Спецификаторы были заменены псевдопеременными, которые теперь являются частью ядра OpenSER и могут использоваться другими модулями (например, avpops в функции avp_printf ())

Основные важные изменения:

  • символ '%' был заменен на '$'
  • для вывода заголовков теперь используйте формат: $hdr(header_name[index]), вместо %{header_name[index]}
  • для печати AVP, используйте формат: $avp([si]:avp_id[index]), вместо: %{[si]:avp_id[index]}; или $avp([$avp_alias[index]) вместо %{[$avp_alias[index]}

Полный список доступных псевдопеременных в OpenSER можно найти по ссылке: http://openser.org/docs/pseudo-variables-1.1.x.html.


Зависимости от других модулей.


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

Нет зависимостей от других модулей.


Зависимости от внешних библиотек и приложений.


Следующие библиотеки или приложения должны быть установлены перед использованием OpenSER с этим модулем:

Нет.


Экспортируемые параметры.


buf_size (integer)

Максимальный размер протоколируемого сообщения.

По умолчанию: 4096.

Пример использования параметра buf_size:
...
modparam("xlog", "buf_size", 8192)
...


force_color (integer)

Если установлено в 1, включается использование цвета для вывода сообщения даже, если log_stderror=0.

По умолчанию: 0.

Пример использования параметра force_color:
...
modparam("xlog", "force_color", 0)
...



Экспортируемые функции.


xlog([level,] format)

Печать форматированного сообщения с использованием функции LOG.

Значения параметров следующие:

  • level - уровень (level), который будет использоваться для функции LOG. Значения параметра могут быть следующими:

    • L_ALERT
    • L_CRIT
    • L_ERR
    • L_WARN
    • L_NOTICE
    • L_INFO
    • L_DBG

На самом деле, имеет значение третий символ этого параметра.

Если этот параметр не указан, будет использоваться значение 'L_ERR'.

  • format - форматированная строка, для вывода в лог.

Эта функция может использоваться из блоков REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE и BRANCH_ROUTE.

Пример использования функции xlog:
...
xlog("L_ERR", "time [$Tf] method <$rm> r-uri <$ru> 2nd via <$hdr(via[1])>\n");
...


xdbg(format)

Печать форматированного сообщения с использованием функции DBG.

Значения параметров следующие:

  • format - форматированная строка, для вывода в лог.

Эта функция может использоваться из блоков REQUEST_ROUTE, FAILURE_ROUTE, ONREPLY_ROUTE и BRANCH_ROUTE.

Пример использования функции xdbg:
...
xdbg("time $Cbx[$Tf]$Cxx method <$rm> r-uri <$ru>\n");
...