name mode size
..
doc 040000
Makefile 100644 540B
README 100644 3.75kB
journal_send.c 100644 3.28kB
journal_send.h 100644 994B
log_systemd_mod.c 100644 5.49kB
README
LOG_SYSTEMD Module Daniel-Constantin Mierla <miconda@gmail.com> Edited by Daniel-Constantin Mierla <miconda@gmail.com> Copyright © 2015 asipto.com __________________________________________________________________ Table of Contents 1. Admin Guide 1. Overview 2. Dependencies 2.1. Kamailio Modules 2.2. External Libraries or Applications 3. Core Logging 4. Functions 4.1. sd_journal_print(level, text) 4.2. sd_journal_send_xavp(name) List of Examples 1.1. Core Logging Replacement with Systemd 1.2. sd_journal_print usage 1.3. sd_journal_send_xavp usage Chapter 1. Admin Guide Table of Contents 1. Overview 2. Dependencies 2.1. Kamailio Modules 2.2. External Libraries or Applications 3. Core Logging 4. Functions 4.1. sd_journal_print(level, text) 4.2. sd_journal_send_xavp(name) 1. Overview It provides logging to systemd journal from the moment of loading this module. 2. Dependencies 2.1. Kamailio Modules 2.2. External Libraries or Applications 2.1. Kamailio Modules The following modules must be loaded before this module: * none. 2.2. External Libraries or Applications The following libraries or applications must be installed before running Kamailio with this module loaded: * libsystemd 3. Core Logging This module can replace the syslog logging with sending the log messages to systemd journal. The logging to systemd is started when this module is loaded, before that the default syslog system is used. It requires that core parameters log_engine_type to be set to 'systemd'. It is not enabled if log_stderror=yes. Example 1.1. Core Logging Replacement with Systemd ... log_engine_type="systemd" ... loadmodule "log_systemd.so" ... 4. Functions 4.1. sd_journal_print(level, text) 4.2. sd_journal_send_xavp(name) 4.1. sd_journal_print(level, text) Print the text in the systemd journal at the provided level parameter. Both parameters can contain variables. For more, see the manual page for function sd_journal_print() in C library libsystemd. This function can be used from ANY_ROUTE. Example 1.2. sd_journal_print usage ... sd_journal_print("LOG_INFO", "R-URI is $ru\n"); ... 4.2. sd_journal_send_xavp(name) Creates a structured log event in journald. The sd_journal_send_xavp(name) function sends a log event in journald, based on the fields provided in the xavp whose root name is specified as parameter. This function is a wrapper for journald's sd_journal_send() function, and allows to specify as many custom fields as desired (see sd_journal_send(3)). The xavp given as parameter must contain child AVPs with names conforming to journald's field name policy (only uppercase letters, numbers and underscore), otherwise they will be discarded by journald. Some field name have a default meaning for journald: * MESSAGE: the human-readable message string for this entry. * PRIORTTY: integer priority value between 0 ("emerg") and 7 ("debug") * (...) (see systemd.journald-fields(7)) This function can be used from ANY_ROUTE. Example 1.3. sd_journal_send_xavp usage request_route { $xavp(event=>MESSAGE) = $rm + " request logged with journald"; $xavp(event[0]=>SIP_MESSAGE) = $mb; # don't forget the '[0]', otherwise kamailio will create and # stack new AVPs (see pseudovariable documentation) over the previous one $xavp(event[0]=>SIP_CALL_ID) = $ci; $xavp(event[0]=>SIP_SRC_PORT) = $sp; $xavp(event[0]=>PRIORITY) = 6; sd_journal_send_xavp("event"); (...) }