mirror of https://github.com/sipwise/kamailio.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
133 lines
4.6 KiB
133 lines
4.6 KiB
_ _ _ ____ ___
|
|
| | ___ __ _ __ _(_)_ __ __ _ / \ | _ \_ _|
|
|
| | / _ \ / _` |/ _` | | '_ \ / _` | / _ \ | |_) | |
|
|
| |__| (_) | (_| | (_| | | | | | (_| | / ___ \| __/| |
|
|
|_____\___/ \__, |\__, |_|_| |_|\__, | /_/ \_\_| |___|
|
|
|___/ |___/ |___/
|
|
Ondrej Martinek <ondra@iptel.org>
|
|
January 2009
|
|
|
|
This document contains the short description of the logging API in Kamailio
|
|
for developers.
|
|
|
|
Source files:
|
|
dprint.h
|
|
dprint.c
|
|
|
|
Compile-time control macros
|
|
=============================
|
|
|
|
NO_LOG
|
|
If defined, logging is completely disabled in SER and no messages
|
|
are produced at all
|
|
|
|
NO_DEBUG
|
|
If defined, logging messages do not include the source filename and
|
|
line location info
|
|
|
|
Logging levels
|
|
================
|
|
|
|
L_DBG ... Debugging message (the lowest level)
|
|
L_INFO ... Info message
|
|
L_WARN ... Warning message
|
|
L_ERR ... Error message
|
|
L_CRIT ... Critical message
|
|
L_ALERT ... Alert message (the highest level)
|
|
|
|
The levels are implemented as integer macros.
|
|
|
|
Related variables
|
|
===================
|
|
|
|
debug
|
|
The config.framework setting that contains the current logging level.
|
|
The initial value can be specified by "debug" parameter in ser.cfg or
|
|
by -d options on the command-line. The default value is L_WARN.
|
|
|
|
log_stderror
|
|
The global variable which specifies whether the log messages should be
|
|
send to the standard error output or syslog (equals to zero).
|
|
Its value can be specified by "log_stderr" parameter in ser.cfg or
|
|
-E option on the command-line.
|
|
|
|
log_facility
|
|
The config.framework setting that contains the current facility for
|
|
logging to syslog.
|
|
The initial value can be specified by "log_facility" parameter in
|
|
ser.cfg. The default value is LOG_DAEMON.
|
|
|
|
Macro functions
|
|
=================
|
|
|
|
* short macro aliases:
|
|
DBG(FMT, ARGS...) alias for LOG(L_DBG, FMT, ARGS...)
|
|
INFO(FMT, ARGS...) alias for LOG(L_INFO, FMT, ARGS...)
|
|
WARN(FMT, ARGS...) alias for LOG(L_WARN, FMT, ARGS...)
|
|
ERR(FMT, ARGS...) alias for LOG(L_ERR, FMT, ARGS...)
|
|
BUG(FMT, ARGS...) alias for LOG(L_CRIT, FMT, ARGS...)
|
|
ALERT(FMT, ARGS...) alias for LOG(L_ALERT, FMT, ARGS...)
|
|
|
|
* LOG(LEVEL, FMT, ARGS...) macro
|
|
Prints the log message on stderr or syslog if the current debug level
|
|
is greater or equal to LEVEL. The message has the following format:
|
|
|
|
- for messages by core:
|
|
PROC(PID) LEVEL: <core> [FILE:LINE]: MESSAGE
|
|
|
|
- for messages by modules:
|
|
PROC(PID) LEVEL: MODULE [FILE:LINE]: MESSAGE
|
|
|
|
- for messages by log(), xlog(), xdbg() script functions:
|
|
PROC(PID) LEVEL: <script>: MESSAGE
|
|
|
|
PROC is the SER process number and PID is the linux process ID.
|
|
LEVEL is one of "DEBUG", "INFO", "NOTICE", "WARNING", "ERROR",
|
|
"ALERT" and "BUG" strings. MESSAGE is constructed from printf-like
|
|
arguments FMT and ARGS.
|
|
|
|
[FILE:LINE] location info is not present if NO_DEBUG macro is defined.
|
|
|
|
Use of shorter aliases is preferred if LEVEL is a preprocess-time
|
|
constant.
|
|
|
|
* LOG_(LEVEL, PREFIX, FMT, ARGS...) macro
|
|
Prints the log message on stderr or syslog if the current debug level
|
|
is greater or equal to LEVEL. The message has the following format:
|
|
|
|
PROC(PID) LEVEL: PREFIXMESSAGE
|
|
|
|
This is an internal macro try to avoid using it.
|
|
|
|
|
|
--------------------------------------------------------------------------------
|
|
|
|
APPENDIX: Summary of the changes to the original API
|
|
======================================================
|
|
|
|
- LOG(LEVEL, FMT, ARGS...) and the short macro corresponding to LEVEL level
|
|
made eqvivalent (eg. LOG(L_DBG, FMT, ARGS...) and DBG(FMT, ARGS...) prints
|
|
always the same message)
|
|
|
|
- changed the format of log messages produced by the macros to include
|
|
the log level, module name, filename, line (if applicable)
|
|
|
|
- added new, internal LOG_(LEVEL, PREFIX, FORMAT, ARGS...) macro
|
|
|
|
- removed DPrint() and DEBUG() macros, L_DEFAULT log level and dprint()
|
|
function
|
|
|
|
!!!
|
|
!!! IMPORTANT! READ ME!
|
|
!!!
|
|
!!! These changes (mainly the first two) require reformating of the most log
|
|
!!! messages in Kamailio core and module source files. This step can be done
|
|
!!! automatically by running "scripts/logging/fix-logs-all" script BUT it
|
|
!!! was NOT originally performed because it would have generated too many
|
|
!!! changes in CVS which was discouraged by Andrei. Instead, the developers
|
|
!!! are expected to run it when ready.
|
|
!!!
|
|
!!! IMPORTANT! READ ME!
|
|
!!!
|
|
|