Loading...
Searching...
No Matches
logging.h File Reference
Osmocom logging framework
`#include <stdio.h>`
`#include <stdint.h>`
`#include <stdarg.h>`
`#include <stdbool.h>`
`#include <osmocom/core/defs.h>`
`#include <osmocom/core/linuxlist.h>`

Go to the source code of this file.

## Data Structures

struct | log_category
| Configuration of single log category / sub-system. More...
struct | log_info_cat
| Information regarding one logging category. More...
struct | log_context
| Log context information, passed to filter. More...
struct | log_info
| Logging configuration, passed to log_init. More...
struct | log_target
| structure representing a logging target More...

## Macros

#define | DEBUG
#define | DEBUGP(ss, fmt, args...) LOGP(ss, LOGL_DEBUG, fmt, ##args)
| Log a debug message through the Osmocom logging framework.
#define | DEBUGPC(ss, fmt, args...) LOGPC(ss, LOGL_DEBUG, fmt, ##args)
#define | LOGP(ss, level, fmt, args...) LOGPSRC(ss, level, NULL, 0, fmt, ## args)
| Log a new message through the Osmocom logging framework.
#define | LOGPC(ss, level, fmt, args...)
| Continue a log message through the Osmocom logging framework.
#define | LOGPSRC(ss, level, caller_file, caller_line, fmt, args...) LOGPSRCC(ss, level, caller_file, caller_line, 0, fmt, ##args)
| Log through the Osmocom logging framework with explicit source.
#define | LOGPSRCC(ss, level, caller_file, caller_line, cont, fmt, args...)
| Log through the Osmocom logging framework with explicit source.
#define | LOGL_DEBUG 1
| different log levels
#define | LOGL_INFO 3
| general information
#define | LOGL_NOTICE 5
| abnormal/unexpected condition
#define | LOGL_ERROR 7
| error condition, requires user action
#define | LOGL_FATAL 8
| fatal, program aborted
#define | DLGLOBAL -1
| global logging
#define | DLLAPD -2
| LAPD implementation.
#define | DLINP -3
| (A-bis) Input sub-system
#define | DLMUX -4
| Osmocom Multiplex (Osmux)
#define | DLMI -5
| ISDN-layer below input sub-system.
#define | DLMIB -6
| ISDN layer B-channel.
#define | DLSMS -7
| SMS sub-system.
#define | DLCTRL -8
| Control Interface.
#define | DLGTP -9
| GTP (GPRS Tunneling Protocol.
#define | DLSTATS -10
| Statistics.
#define | DLGSUP -11
| Generic Subscriber Update Protocol.
#define | DLOAP -12
| Osmocom Authentication Protocol.
#define | DLSS7 -13
| Osmocom SS7.
#define | DLSCCP -14
| Osmocom SCCP.
#define | DLSUA -15
| Osmocom SUA.
#define | DLM3UA -16
| Osmocom M3UA.
#define | DLMGCP -17
| Osmocom MGCP.
#define | DLJIBUF -18
| Osmocom Jitter Buffer.
#define | DLRSPRO -19
| Osmocom Remote SIM Protocol.
#define | DLNS -20
| Osmocom NS layer.
#define | DLBSSGP -21
| Osmocom BSSGP layer.
#define | DLNSDATA -22
| Osmocom NS layer data pdus.
#define | DLNSSIGNAL -23
| Osmocom NS layer signal pdus.
#define | DLIUUP -24
| Osmocom IuUP layer.
#define | DLPFCP -25
| Osmocom Packet Forwarding Control Protocol.
#define | DLCSN1 -26
| CSN.1 (Concrete Syntax Notation 1) codec.
#define | DLM2PA -27
| Osmocom M2PA (libosmo-sigtran)
#define | DLM2UA -28
| Reserved for future Osmocom M2UA (libosmo-sigtran)
#define | DLIO -29
| Osmocom IO sub-system.
#define | OSMO_NUM_DLIB 29
| Number of logging sub-systems in libraries.
#define | OSMO_LOGCOLOR_NORMAL NULL
#define | OSMO_LOGCOLOR_RED "\033[1;31m"
#define | OSMO_LOGCOLOR_GREEN "\033[1;32m"
#define | OSMO_LOGCOLOR_YELLOW "\033[1;33m"
#define | OSMO_LOGCOLOR_BLUE "\033[1;34m"
#define | OSMO_LOGCOLOR_PURPLE "\033[1;35m"
#define | OSMO_LOGCOLOR_CYAN "\033[1;36m"
#define | OSMO_LOGCOLOR_DARKRED "\033[31m"
#define | OSMO_LOGCOLOR_DARKGREEN "\033[32m"
#define | OSMO_LOGCOLOR_DARKYELLOW "\033[33m"
#define | OSMO_LOGCOLOR_DARKBLUE "\033[34m"
#define | OSMO_LOGCOLOR_DARKPURPLE "\033[35m"
#define | OSMO_LOGCOLOR_DARKCYAN "\033[36m"
#define | OSMO_LOGCOLOR_DARKGREY "\033[1;30m"
#define | OSMO_LOGCOLOR_GREY "\033[37m"
#define | OSMO_LOGCOLOR_BRIGHTWHITE "\033[1;37m"
#define | OSMO_LOGCOLOR_END "\033[0;m"
#define | LOG_MAX_CTX _LOG_CTX_COUNT
| Maximum number of logging contexts.
#define | LOG_MAX_FILTERS _LOG_FLT_COUNT
| Maximum number of logging filters.
#define | LOG_FILTER_ALL (1<<LOG_FLT_ALL)
| Compatibility with older libosmocore versions.
#define | GPRS_CTX_NSVC LOG_CTX_GB_NSVC
| Compatibility with older libosmocore versions.
#define | GPRS_CTX_BVC LOG_CTX_GB_BVC
| Compatibility with older libosmocore versions.
#define | LOG_MTX_DEBUG 0
#define | log_tgt_mutex_lock() log_tgt_mutex_lock_impl()
#define | log_tgt_mutex_unlock() log_tgt_mutex_unlock_impl()

## Typedefs

typedef int | log_filter(const struct log_context *ctx, struct log_target *target)
| Log filter function.
typedef void | log_print_filters(struct vty *vty, const struct log_info *info, const struct log_target *tgt)
typedef void | log_save_filters(struct vty *vty, const struct log_info *info, const struct log_target *tgt)

## Enumerations

enum | log_ctx_index { LOG_CTX_GB_NSVC , LOG_CTX_GB_BVC , LOG_CTX_BSC_SUBSCR , LOG_CTX_VLR_SUBSCR , LOG_CTX_L1_SAPI , LOG_CTX_GB_NSE , _LOG_CTX_COUNT }
| Indexes to indicate the object currently acted upon. More...
enum | log_filter_index { LOG_FLT_ALL , LOG_FLT_GB_NSVC , LOG_FLT_GB_BVC , LOG_FLT_BSC_SUBSCR , LOG_FLT_VLR_SUBSCR , LOG_FLT_L1_SAPI , LOG_FLT_GB_NSE , _LOG_FLT_COUNT }
| Indexes to indicate objects that should be logged. More...
enum | log_target_type { LOG_TGT_TYPE_VTY , LOG_TGT_TYPE_SYSLOG , LOG_TGT_TYPE_FILE , LOG_TGT_TYPE_STDERR , LOG_TGT_TYPE_STRRB , LOG_TGT_TYPE_GSMTAP , LOG_TGT_TYPE_SYSTEMD }
| Type of logging target. More...
enum | log_filename_type { LOG_FILENAME_NONE , LOG_FILENAME_PATH , LOG_FILENAME_BASENAME }
| Whether/how to log the source filename (and line number). More...
enum | log_filename_pos { LOG_FILENAME_POS_HEADER_END , LOG_FILENAME_POS_LINE_END }
| Where on a log line source file and line should be logged. More...

## Functions

void | osmo_vlogp (int subsys, int level, const char *file, int line, int cont, const char *format, va_list ap)
| vararg version of logging function
void | logp (int subsys, const char *file, int line, int cont, const char *format,...)
| logging function used by DEBUGP() macro
void | logp2 (int subsys, unsigned int level, const char *file, int line, int cont, const char *format,...)
| logging function used by LOGP() macro
void void | logp_stub (const char *file, int line, int cont, const char *format,...)
int | log_init (const struct log_info *inf, void *ctx)
| Initialize the Osmocom logging core.
void | log_fini (void)
int | log_check_level (int subsys, unsigned int level)
| Check whether a log entry will be generated.
void | log_reset_context (void)
| Reset (clear) the logging context.
int | log_set_context (uint8_t ctx_nr, void *value)
| Set the logging context.
void | log_set_all_filter (struct log_target *target, int all)
| Enable the LOG_FLT_ALL log filter.
int | log_cache_enable (void)
| Enable the log level lookup cache to bypass string formatting and other code for log statements which are not actually enabled/needed by any existing log target.
void | log_cache_update (int mapped_subsys, uint8_t enabled, uint8_t level)
| Updates single cache entry, caller must hold osmo_log_tgt_mutex.
void | log_set_use_color (struct log_target *target, int use_color)
| Enable or disable the use of colored output.
void | log_set_print_extended_timestamp (struct log_target *target, int print_timestamp)
| Enable or disable printing of extended timestamps while logging.
void | log_set_print_timestamp (struct log_target *target, int print_timestamp)
| Enable or disable printing of timestamps while logging.
void | log_set_print_tid (struct log_target *target, int print_tid)
| Enable or disable printing of timestamps while logging.
void | log_set_print_filename (struct log_target *target, int print_filename)
| Use log_set_print_filename2() instead.
void | log_set_print_filename2 (struct log_target *target, enum log_filename_type lft)
| Enable or disable printing of the filename while logging.
void | log_set_print_filename_pos (struct log_target *target, enum log_filename_pos pos)
| Set the position where on a log line the source file info should be logged.
void | log_set_print_category (struct log_target *target, int print_category)
| Enable or disable printing of the category name.
void | log_set_print_category_hex (struct log_target *target, int print_category_hex)
| Enable or disable printing of the category number in hex ('<000b>').
void | log_set_print_level (struct log_target *target, int print_level)
| Enable or disable printing of the log level name.
void | log_set_log_level (struct log_target *target, int log_level)
| Set the global log level for a given log target.
void | log_parse_category_mask (struct log_target *target, const char *_mask)
| parse the log category mask
const char * | log_category_name (int subsys)
int | log_parse_level (const char *lvl)
| Parse a human-readable log level into a numeric value.
const char * | log_level_str (unsigned int lvl)
| convert a numeric log level into human-readable string
int | log_parse_category (const char *category)
| parse a human-readable log category into numeric form
void | log_set_category_filter (struct log_target *target, int category, int enable, int level)
| Set a category filter on a given log target.
struct log_target * | log_target_create (void)
| Create a new log target skeleton.
void | log_target_destroy (struct log_target *target)
| Unregister, close and delete a log target.
struct log_target * | log_target_create_stderr (void)
| Create the STDERR log target.
struct log_target * | log_target_create_file (const char *fname)
| Create a new file-based log target using non-blocking write_queue.
struct log_target * | log_target_create_syslog (const char *ident, int option, int facility)
struct log_target * | log_target_create_gsmtap (const char *host, uint16_t port, const char *ident, bool ofd_wq_mode, bool add_sink)
| Create a new logging target for GSMTAP logging.
struct log_target * | log_target_create_systemd (bool raw)
| Create a new logging target for systemd journal logging.
void | log_target_systemd_set_raw (struct log_target *target, bool raw)
| Change meta information handling of an existing logging target.
int | log_target_file_reopen (struct log_target *target)
| close and re-open a log file (for log file rotation)
int | log_target_file_switch_to_stream (struct log_target *target)
| switch from non-blocking/write-queue to blocking + buffered stream output
int | log_target_file_switch_to_wqueue (struct log_target *target)
| switch from blocking + buffered file output to non-blocking write-queue based output.
int | log_targets_reopen (void)
| close and re-open all log files (for log file rotation)
void | log_add_target (struct log_target *target)
| Register a new log target with the logging core.
void | log_del_target (struct log_target *target)
| Unregister a log target from the logging core.
struct log_target * | log_target_find (enum log_target_type type, const char *fname)
| Find a registered log target.
void | log_enable_multithread (void)
| Enable multithread support (mutex) in libosmocore logging system.
void | log_tgt_mutex_lock_impl (void)
| Acquire the osmo_log_tgt_mutex.
void | log_tgt_mutex_unlock_impl (void)
| Release the osmo_log_tgt_mutex.

## Variables

struct log_info * | osmo_log_info