Logging API¶
Group names
-
LOG_GRP_SYSTEM_TAG
¶ system
: catch-all log for generic messages
-
LOG_GRP_CACHE_TAG
¶ cache
: operations related to cache
-
LOG_GRP_IO_TAG
¶ io
: input/output operations
-
LOG_GRP_NETWORK_TAG
¶ net
: network configuration and operation
-
LOG_GRP_TA_TAG
¶ ta
: basic log for trust anchors (TA)
-
LOG_GRP_TASENTINEL_TAG
¶ tasent
: TA sentinel
-
LOG_GRP_TASIGNALING_TAG
¶ tasign
: TA signal query
-
LOG_GRP_TAUPDATE_TAG
¶ taupd
: TA update
-
LOG_GRP_TLS_TAG
¶ tls
: TLS encryption layer
-
LOG_GRP_GNUTLS_TAG
¶ gnutls
: low-level logs from GnuTLS
-
LOG_GRP_TLSCLIENT_TAG
¶ tls_cl
: TLS client messages (used for TLS forwarding)
-
LOG_GRP_XDP_TAG
¶ xdp
: operations related to XDP
-
LOG_GRP_DOH_TAG
¶ doh
: DNS-over-HTTPS logger (doh2 implementation)
-
LOG_GRP_DNSSEC_TAG
¶ dnssec
: operations related to DNSSEC
-
LOG_GRP_HINT_TAG
¶ hint
: operations related to static hints
-
LOG_GRP_PLAN_TAG
¶ plan
: operations related to resolution plan
-
LOG_GRP_ITERATOR_TAG
¶ iterat
: operations related to iterate layer
-
LOG_GRP_VALIDATOR_TAG
¶ valdtr
: operations related to validate layer
-
LOG_GRP_RESOLVER_TAG
¶ resolv
: operations related to resolving
-
LOG_GRP_SELECTION_TAG
¶ select
: operations related to server selection
-
LOG_GRP_ZCUT_TAG
¶ zonecut
: operations related to zone cut
-
LOG_GRP_COOKIES_TAG
¶ cookie
: operations related to cookies
-
LOG_GRP_STATISTICS_TAG
¶ statis
: operations related to statistics
-
LOG_GRP_REBIND_TAG
¶ rebind
: operations related to rebinding
-
LOG_GRP_WORKER_TAG
¶ worker
: operations related to worker layer
-
LOG_GRP_POLICY_TAG
¶ policy
: operations related to policy
-
LOG_GRP_DAF_TAG
¶ daf
: operations related to DAF module
-
LOG_GRP_DETECTTIMEJUMP_TAG
¶ timejm
: operations related to time jump
-
LOG_GRP_DETECTTIMESKEW_TAG
¶ timesk
: operations related to time skew
-
LOG_GRP_GRAPHITE_TAG
¶ graphi
: operations related to graphite
-
LOG_GRP_PREFILL_TAG
¶ prefil
: operations related to prefill
-
LOG_GRP_PRIMING_TAG
¶ primin
: operations related to priming
-
LOG_GRP_SRVSTALE_TAG
¶ srvstl
: operations related to serve stale
-
LOG_GRP_WATCHDOG_TAG
¶ wtchdg
: operations related to watchdog
-
LOG_GRP_NSID_TAG
¶ nsid
: operations related to NSID
-
LOG_GRP_DNSTAP_TAG
¶ dnstap
: operations related to dnstap
-
LOG_GRP_TESTS_TAG
¶ tests
: operations related to tests
-
LOG_GRP_DOTAUTH_TAG
¶ dotaut
: DNS-over-TLS against authoritative servers
-
LOG_GRP_HTTP_TAG
¶ http
: http module, its web interface and legacy DNS-over-HTTPS
-
LOG_GRP_CONTROL_TAG
¶ contrl
: TTY control sockets
-
LOG_GRP_MODULE_TAG
¶ module
: suitable for user-defined modules
-
LOG_GRP_DEVEL_TAG
¶ devel
: for development purposes
-
LOG_GRP_RENUMBER_TAG
¶ renum
: operation related to renumber
-
LOG_GRP_EDE_TAG
¶ exterr
: extended error module
-
LOG_GRP_REQDBG_TAG
¶ reqdbg
: debug logs enabled by policy actions
Logging levels
We stick very close to POSIX syslog.h
-
kr_log_debug
(grp, fmt, ...)¶ Debugging message.
Can be very verbose. The level is most often used through VERBOSE_MSG.
-
kr_log_info
(grp, fmt, ...)¶
-
kr_log_notice
(grp, fmt, ...)¶
-
LOG_DEFAULT_LEVEL
¶ Levels less severe than
notice
are not logged by default.
-
kr_log_warning
(grp, fmt, ...)¶
-
kr_log_error
(grp, fmt, ...)¶ Significant error.
The process continues, except for configuration errors during startup.
-
kr_log_crit
(grp, fmt, ...)¶ Critical condition.
The process dies. Bad configuration should not cause this.
-
kr_log_deprecate
(grp, fmt, ...)¶
-
kr_log
(fmt, ...)¶ Logging function for user modules.
Uses group LOG_GRP_MODULE and
info
level.- Parameters
fmt
: Format string
Defines
-
LOG_UNKNOWN_LEVEL
¶ Negative error value.
-
LOG_GNUTLS_LEVEL
¶ GnuTLS level is 5.
-
KR_LOG_LEVEL_IS
(exp)¶
-
kr_log_req
(req, qry_id, indent, grp, fmt, ...)¶ Log a debug-level message from a kr_request.
Typically we call kr_log_q() instead.
- Parameters
qry_uid
: query ID to append to request ID, 0 means “no query”indent
: level of indentation between [group ][req.qry] and messagegrp
: GROUP_NAME (without the LOG_GRP_ prefix)fmt
: printf-like format string
-
kr_log_q
(qry, grp, fmt, ...)¶ Log a debug-level message from a kr_query.
- Parameters
qry
: current querygrp
: GROUP_NAME (without the LOG_GRP_ prefix)fmt
: printf-like format string
-
kr_log_is_debug
(grp, req)¶ Return whether a particular log group in a request is in debug/verbose mode.
Typically you use this as condition to compute some data to be logged, in case that’s considered too expensive to do unless it really gets logged.
The request can be NULL, and there’s a _qry() shorthand to specify query instead.
-
kr_log_is_debug_qry
(grp, qry)¶
-
KR_LOG_SJM_STR
(x)¶
-
SD_JOURNAL_METADATA
¶
Typedefs
-
typedef int
kr_log_level_t
¶
Enums
-
enum
kr_log_target_t
¶ Values:
-
enumerator
LOG_TARGET_SYSLOG
¶
-
enumerator
LOG_TARGET_STDERR
¶
-
enumerator
LOG_TARGET_STDOUT
¶
-
enumerator
LOG_TARGET_DEFAULT
¶
-
enumerator
-
enum
kr_log_group
¶ Values:
-
enumerator
LOG_GRP_UNKNOWN
¶
-
enumerator
LOG_GRP_SYSTEM
¶
-
enumerator
LOG_GRP_CACHE
¶
-
enumerator
LOG_GRP_IO
¶
-
enumerator
LOG_GRP_NETWORK
¶
-
enumerator
LOG_GRP_TA
¶
-
enumerator
LOG_GRP_TLS
¶
-
enumerator
LOG_GRP_GNUTLS
¶
-
enumerator
LOG_GRP_TLSCLIENT
¶
-
enumerator
LOG_GRP_XDP
¶
-
enumerator
LOG_GRP_DOH
¶
-
enumerator
LOG_GRP_DNSSEC
¶
-
enumerator
LOG_GRP_HINT
¶
-
enumerator
LOG_GRP_PLAN
¶
-
enumerator
LOG_GRP_ITERATOR
¶
-
enumerator
LOG_GRP_VALIDATOR
¶
-
enumerator
LOG_GRP_RESOLVER
¶
-
enumerator
LOG_GRP_SELECTION
¶
-
enumerator
LOG_GRP_ZCUT
¶
-
enumerator
LOG_GRP_COOKIES
¶
-
enumerator
LOG_GRP_STATISTICS
¶
-
enumerator
LOG_GRP_REBIND
¶
-
enumerator
LOG_GRP_WORKER
¶
-
enumerator
LOG_GRP_POLICY
¶
-
enumerator
LOG_GRP_TASENTINEL
¶
-
enumerator
LOG_GRP_TASIGNALING
¶
-
enumerator
LOG_GRP_TAUPDATE
¶
-
enumerator
LOG_GRP_DAF
¶
-
enumerator
LOG_GRP_DETECTTIMEJUMP
¶
-
enumerator
LOG_GRP_DETECTTIMESKEW
¶
-
enumerator
LOG_GRP_GRAPHITE
¶
-
enumerator
LOG_GRP_PREFILL
¶
-
enumerator
LOG_GRP_PRIMING
¶
-
enumerator
LOG_GRP_SRVSTALE
¶
-
enumerator
LOG_GRP_WATCHDOG
¶
-
enumerator
LOG_GRP_NSID
¶
-
enumerator
LOG_GRP_DNSTAP
¶
-
enumerator
LOG_GRP_TESTS
¶
-
enumerator
LOG_GRP_DOTAUTH
¶
-
enumerator
LOG_GRP_HTTP
¶
-
enumerator
LOG_GRP_CONTROL
¶
-
enumerator
LOG_GRP_MODULE
¶
-
enumerator
LOG_GRP_DEVEL
¶
-
enumerator
LOG_GRP_RENUMBER
¶
-
enumerator
LOG_GRP_EDE
¶
-
enumerator
LOG_GRP_REQDBG
¶
-
enumerator
Functions
-
void
kr_log_target_set
(kr_log_target_t target)¶ Set the current logging target.
-
bool
kr_log_group_is_set
(enum kr_log_group group)¶
-
void
kr_log_group_add
(enum kr_log_group group)¶
-
void
kr_log_group_reset
()¶
-
const char *
kr_log_grp2name
(enum kr_log_group group)¶
-
enum kr_log_group
kr_log_name2grp
(const char *name)¶
-
void
kr_log_level_set
(kr_log_level_t level)¶ Set the current logging level.
-
const char *
kr_log_level2name
(kr_log_level_t level)¶
-
kr_log_level_t
kr_log_name2level
(const char *name)¶ Return negative on error.
-
void
kr_log_req1
(const struct kr_request *const req, uint32_t qry_uid, const unsigned int indent, enum kr_log_group group, const char *tag, const char *fmt, ...)¶
-
void
kr_log_q1
(const struct kr_query *qry, enum kr_log_group group, const char *tag, const char *fmt, ...)¶
-
bool
kr_log_is_debug_fun
(enum kr_log_group group, const struct kr_request *req)¶
-
void
kr_log_fmt
(enum kr_log_group group, kr_log_level_t level, const char *file, const char *line, const char *func, const char *fmt, ...)¶
Variables
-
kr_log_target_t
kr_log_target
¶ Current logging target.
Read only, please.
-
kr_log_level_t
kr_log_level
¶ Current logging level.
Read only, please.