Scroll to navigation

COAP_LOGGING(3) libcoap Manual COAP_LOGGING(3)


coap_logging, coap_log, coap_get_log_level, coap_set_log_level, coap_set_log_handler, coap_package_name, coap_package_version, coap_set_show_pdu_output, coap_show_pdu - Work with CoAP logging


#include <coap2/coap.h>

void coap_log(coap_log_t level, const char *format, ...);

void coap_set_log_level(coap_log_t level);

coap_log_t coap_get_log_level(void);

void coap_dtls_set_log_level(int level);

int coap_dtls_get_log_level(void);

void coap_set_log_handler(coap_log_handler_t handler);

const char *coap_package_name(void);

const char *coap_package_version(void);

void coap_set_show_pdu_output(int use_fprintf);

void coap_show_pdu(coap_log_t level, const coap_pdu_t *pdu);

const char *coap_endpoint_str(const coap_endpoint_t *endpoint);

const char *coap_session_str(const coap_session_t *session);

Link with -lcoap-2, -lcoap-2-gnutls, -lcoap-2-openssl or -lcoap-2-tinydtls depending on your (D)TLS library type.


The logging sub-system supports logging at different levels, and depending on the selected logging level, outputs the appropriate information.

Logging by default is to stderr or stdout depending on the logging level of the log entry. It ia possible to send the logging information to an application logging call-back handler for processing by the application.

The coap_log() function is used to log information at the appropriate level. The rest of the parameters follow the standard printf() function format.

Logging levels (coap_log_t) are defined by (the same as for syslog()), which are numerically incrementing in value:


Emergency level (0).


Alert level (1).


Critical level (2).


Error level (3).


Warning level (the default) (4).


Notice level (5).


Information level (6).


Debug level (7).

The coap_set_log_level() function is used to set the current logging level for output by any subsequent coap_log() calls. Output is only logged if the coap_log() level definition is smaller than or equal to the curent logging level.

The coap_get_log_level() function is used to get the current logging level.

The coap_dtls_set_log_level() function is used to set the logging level for output by the DTLS library for specific DTLS information. Usually, both coap_set_log_level() and coap_dtls_set_log_level() would be set to the same level value. If the logging level is set to greater than LOG_DEBUG, the underlying TLS library may get more verbose in its output.

The coap_dtls_get_log_level() function is used to get the current logging level for the DTLS library.

The coap_set_log_handler()* function can be used to define an alternative logging handler for processing the logging messages. The logging handler prototype is defined as:

typedef void (*coap_log_handler_t) (coap_log_t level, const char *message);

The coap_package_name() function returns the name of this library.

The coap_package_version() function returns the version of this library.

The coap_set_show_pdu_output() function defines whether the output from coap_show_pdu() is to be either sent to stdout/stderr, or output using coap_log(). use_fprintf is set to 1 for stdout/stderr (the default), and use_fprintf is set to 0 for coap_log().

The coap_show_pdu() function is used to decode the pdu, outputting as appropriate for logging level. Where the output goes is dependent on coap_set_show_pdu_output().

The coap_endpoint_str() function returns a description string of the endpoint.

The coap_session_str() function is used to get a string containing the information about the session.


The coap_package_name() and coap_package_version() return the appropriate zero-terminated character string.

The coap_get_log_level() function returns the current logging level.

The coap_dtls_get_log_level() function returns the current logging level for the DTLS library specifics.

The coap_endpoint_str() function returns a description string of the endpoint.

The coap_session_str() function returns a description string of the session.


coap_context(3) and coap_session(3)


See "RFC7252: The Constrained Application Protocol (CoAP)" for further information.


Please report bugs on the mailing list for libcoap:


The libcoap project <>

05/14/2022 coap_logging 4.2.1