libcoap 4.3.4
Logging Support

API for logging support. More...

+ Collaboration diagram for Logging Support:

Macros

#define COAP_DEBUG_FD   stdout
 Used for output for COAP_LOG_OSCORE to COAP_LOG_ERR. More...
 
#define COAP_ERR_FD   stderr
 Used for output for COAP_LOG_CRIT to COAP_LOG_EMERG. More...
 
#define COAP_MAX_LOGGING_LEVEL   8
 
#define _COAP_LOG_EMERG   0
 
#define _COAP_LOG_ALERT   1
 
#define _COAP_LOG_CRIT   2
 
#define _COAP_LOG_ERR   3
 
#define _COAP_LOG_WARN   4
 
#define _COAP_LOG_NOTICE   5
 
#define _COAP_LOG_INFO   6
 
#define _COAP_LOG_DEBUG   7
 
#define _COAP_LOG_OSCORE   8
 
#define coap_log_emerg(...)   coap_log(COAP_LOG_EMERG, __VA_ARGS__)
 
#define coap_log_alert(...)   coap_log(COAP_LOG_ALERT, __VA_ARGS__)
 
#define coap_log_crit(...)   coap_log(COAP_LOG_CRIT, __VA_ARGS__)
 
#define coap_log_err(...)   coap_log(COAP_LOG_ERR, __VA_ARGS__)
 
#define coap_log_warn(...)   coap_log(COAP_LOG_WARN, __VA_ARGS__)
 
#define coap_log_info(...)   coap_log(COAP_LOG_INFO, __VA_ARGS__)
 
#define coap_log_notice(...)   coap_log(COAP_LOG_NOTICE, __VA_ARGS__)
 
#define coap_log_debug(...)   coap_log(COAP_LOG_DEBUG, __VA_ARGS__)
 
#define coap_log_oscore(...)   coap_log(COAP_LOG_OSCORE, __VA_ARGS__)
 
#define LOG_EMERG   COAP_LOG_EMERG
 
#define LOG_ALERT   COAP_LOG_ALERT
 
#define LOG_CRIT   COAP_LOG_CRIT
 
#define LOG_ERR   COAP_LOG_ERR
 
#define LOG_WARNING   COAP_LOG_WARN
 
#define LOG_NOTICE   COAP_LOG_NOTICE
 
#define LOG_INFO   COAP_LOG_INFO
 
#define LOG_DEBUG   COAP_LOG_DEBUG
 
#define coap_log(level, ...)
 Logging function. More...
 
#define coap_dtls_log(level, ...)
 Logging function. More...
 

Typedefs

typedef void(* coap_log_handler_t) (coap_log_t level, const char *message)
 Logging callback handler definition. More...
 

Enumerations

enum  coap_log_t {
  COAP_LOG_EMERG = 0 , COAP_LOG_ALERT , COAP_LOG_CRIT , COAP_LOG_ERR ,
  COAP_LOG_WARN , COAP_LOG_NOTICE , COAP_LOG_INFO , COAP_LOG_DEBUG ,
  COAP_LOG_OSCORE , COAP_LOG_DTLS_BASE
}
 Logging type. More...
 

Functions

COAP_STATIC_INLINE void coap_no_log (void)
 
coap_log_t coap_get_log_level (void)
 Get the current logging level. More...
 
void coap_set_log_level (coap_log_t level)
 Sets the log level to the specified value. More...
 
void coap_dtls_set_log_level (coap_log_t level)
 Sets the (D)TLS logging level to the specified level. More...
 
coap_log_t coap_dtls_get_log_level (void)
 Get the current (D)TLS logging. More...
 
void coap_set_log_handler (coap_log_handler_t handler)
 Add a custom log callback handler. More...
 
const char * coap_package_name (void)
 Get the library package name. More...
 
const char * coap_package_version (void)
 Get the library package version. More...
 
const char * coap_package_build (void)
 Get the library package build. More...
 
void coap_log_impl (coap_log_t level, const char *format,...)
 Writes the given text to COAP_ERR_FD (for level <= COAP_LOG_CRIT) or COAP_DEBUG_FD (for level >= COAP_LOG_ERR). More...
 
void coap_set_show_pdu_output (int use_fprintf)
 Defines the output mode for the coap_show_pdu() function. More...
 
void coap_show_pdu (coap_log_t level, const coap_pdu_t *pdu)
 Display the contents of the specified pdu. More...
 
void coap_show_tls_version (coap_log_t level)
 Display the current (D)TLS library linked with and built for version. More...
 
char * coap_string_tls_version (char *buffer, size_t bufsize)
 Build a string containing the current (D)TLS library linked with and built for version. More...
 
char * coap_string_tls_support (char *buffer, size_t bufsize)
 Build a string containing the current (D)TLS library support. More...
 
size_t coap_print_addr (const coap_address_t *address, unsigned char *buffer, size_t size)
 Print the address into the defined buffer. More...
 
const char * coap_print_ip_addr (const coap_address_t *address, char *buffer, size_t size)
 Print the IP address into the defined buffer. More...
 
const char * coap_session_str (const coap_session_t *session)
 Get session description. More...
 
const char * coap_endpoint_str (const coap_endpoint_t *endpoint)
 Get endpoint description. More...
 

Detailed Description

API for logging support.

Macro Definition Documentation

◆ _COAP_LOG_ALERT

#define _COAP_LOG_ALERT   1

Definition at line 69 of file coap_debug.h.

◆ _COAP_LOG_CRIT

#define _COAP_LOG_CRIT   2

Definition at line 70 of file coap_debug.h.

◆ _COAP_LOG_DEBUG

#define _COAP_LOG_DEBUG   7

Definition at line 75 of file coap_debug.h.

◆ _COAP_LOG_EMERG

#define _COAP_LOG_EMERG   0

Definition at line 68 of file coap_debug.h.

◆ _COAP_LOG_ERR

#define _COAP_LOG_ERR   3

Definition at line 71 of file coap_debug.h.

◆ _COAP_LOG_INFO

#define _COAP_LOG_INFO   6

Definition at line 74 of file coap_debug.h.

◆ _COAP_LOG_NOTICE

#define _COAP_LOG_NOTICE   5

Definition at line 73 of file coap_debug.h.

◆ _COAP_LOG_OSCORE

#define _COAP_LOG_OSCORE   8

Definition at line 76 of file coap_debug.h.

◆ _COAP_LOG_WARN

#define _COAP_LOG_WARN   4

Definition at line 72 of file coap_debug.h.

◆ COAP_DEBUG_FD

#define COAP_DEBUG_FD   stdout

Used for output for COAP_LOG_OSCORE to COAP_LOG_ERR.

Definition at line 31 of file coap_debug.h.

◆ coap_dtls_log

#define coap_dtls_log (   level,
  ... 
)
Value:
do { \
if ((int)((level))<=(int)coap_dtls_get_log_level()) \
coap_log_impl((level)+COAP_LOG_DTLS_BASE, __VA_ARGS__); \
} while(0)
coap_log_t coap_dtls_get_log_level(void)
Get the current (D)TLS logging.
Definition: coap_notls.c:140
@ COAP_LOG_DTLS_BASE
Definition: coap_debug.h:60

Logging function.

Writes the given text to COAP_ERR_FD (for level <= COAP_LOG_CRIT) or COAP_DEBUG_FD (for level >= COAP_LOG_ERR). The text is output only when level is below or equal to the log level that set by coap_dtls_set_log_level().

Parameters
levelOne of the COAP_LOG_* values.

Definition at line 293 of file coap_debug.h.

◆ COAP_ERR_FD

#define COAP_ERR_FD   stderr

Used for output for COAP_LOG_CRIT to COAP_LOG_EMERG.

Definition at line 38 of file coap_debug.h.

◆ coap_log

#define coap_log (   level,
  ... 
)
Value:
do { \
if ((int)((level))<=(int)coap_get_log_level()) \
coap_log_impl((level), __VA_ARGS__); \
} while(0)
coap_log_t coap_get_log_level(void)
Get the current logging level.
Definition: coap_debug.c:91

Logging function.

Writes the given text to COAP_ERR_FD (for level <= COAP_LOG_CRIT) or COAP_DEBUG_FD (for level >= COAP_LOG_ERR). The text is output only when level is below or equal to the log level that set by coap_set_log_level().

Parameters
levelOne of the COAP_LOG_* values.

Definition at line 277 of file coap_debug.h.

◆ coap_log_alert

#define coap_log_alert (   ...)    coap_log(COAP_LOG_ALERT, __VA_ARGS__)

Definition at line 84 of file coap_debug.h.

◆ coap_log_crit

#define coap_log_crit (   ...)    coap_log(COAP_LOG_CRIT, __VA_ARGS__)

Definition at line 90 of file coap_debug.h.

◆ coap_log_debug

#define coap_log_debug (   ...)    coap_log(COAP_LOG_DEBUG, __VA_ARGS__)

Definition at line 120 of file coap_debug.h.

◆ coap_log_emerg

#define coap_log_emerg (   ...)    coap_log(COAP_LOG_EMERG, __VA_ARGS__)

Definition at line 81 of file coap_debug.h.

◆ coap_log_err

#define coap_log_err (   ...)    coap_log(COAP_LOG_ERR, __VA_ARGS__)

Definition at line 96 of file coap_debug.h.

◆ coap_log_info

#define coap_log_info (   ...)    coap_log(COAP_LOG_INFO, __VA_ARGS__)

Definition at line 108 of file coap_debug.h.

◆ coap_log_notice

#define coap_log_notice (   ...)    coap_log(COAP_LOG_NOTICE, __VA_ARGS__)

Definition at line 114 of file coap_debug.h.

◆ coap_log_oscore

#define coap_log_oscore (   ...)    coap_log(COAP_LOG_OSCORE, __VA_ARGS__)

Definition at line 126 of file coap_debug.h.

◆ coap_log_warn

#define coap_log_warn (   ...)    coap_log(COAP_LOG_WARN, __VA_ARGS__)

Definition at line 102 of file coap_debug.h.

◆ COAP_MAX_LOGGING_LEVEL

#define COAP_MAX_LOGGING_LEVEL   8

Definition at line 42 of file coap_debug.h.

◆ LOG_ALERT

#define LOG_ALERT   COAP_LOG_ALERT

Definition at line 145 of file coap_debug.h.

◆ LOG_CRIT

#define LOG_CRIT   COAP_LOG_CRIT

Definition at line 148 of file coap_debug.h.

◆ LOG_DEBUG

#define LOG_DEBUG   COAP_LOG_DEBUG

Definition at line 163 of file coap_debug.h.

◆ LOG_EMERG

#define LOG_EMERG   COAP_LOG_EMERG

Definition at line 142 of file coap_debug.h.

◆ LOG_ERR

#define LOG_ERR   COAP_LOG_ERR

Definition at line 151 of file coap_debug.h.

◆ LOG_INFO

#define LOG_INFO   COAP_LOG_INFO

Definition at line 160 of file coap_debug.h.

◆ LOG_NOTICE

#define LOG_NOTICE   COAP_LOG_NOTICE

Definition at line 157 of file coap_debug.h.

◆ LOG_WARNING

#define LOG_WARNING   COAP_LOG_WARN

Definition at line 154 of file coap_debug.h.

Typedef Documentation

◆ coap_log_handler_t

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

Logging callback handler definition.

Parameters
levelOne of the COAP_LOG_* values, or if used for (D)TLS logging, COAP_LOG_DTLS_BASE + one of the COAP_LOG_* values.
messageZero-terminated string message to log.

Definition at line 202 of file coap_debug.h.

Enumeration Type Documentation

◆ coap_log_t

enum coap_log_t

Logging type.

These should be used where possible in the code instead of the syslog definitions, or alternatively use the coap_log_*() functions to reduce line length.

Enumerator
COAP_LOG_EMERG 
COAP_LOG_ALERT 
COAP_LOG_CRIT 
COAP_LOG_ERR 
COAP_LOG_WARN 
COAP_LOG_NOTICE 
COAP_LOG_INFO 
COAP_LOG_DEBUG 
COAP_LOG_OSCORE 
COAP_LOG_DTLS_BASE 

Definition at line 50 of file coap_debug.h.

Function Documentation

◆ coap_dtls_get_log_level()

coap_log_t coap_dtls_get_log_level ( void  )

Get the current (D)TLS logging.

Returns
One of the COAP_LOG_* values.

Definition at line 140 of file coap_notls.c.

◆ coap_dtls_set_log_level()

void coap_dtls_set_log_level ( coap_log_t  level)

Sets the (D)TLS logging level to the specified level.

Parameters
levelOne of the COAP_LOG_* values.

Definition at line 135 of file coap_notls.c.

+ Here is the caller graph for this function:

◆ coap_endpoint_str()

const char * coap_endpoint_str ( const coap_endpoint_t endpoint)

Get endpoint description.

Parameters
endpointThe CoAP endpoint.
Returns
description string.

◆ coap_get_log_level()

coap_log_t coap_get_log_level ( void  )

Get the current logging level.

Returns
One of the COAP_LOG_* values.

Definition at line 91 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ coap_log_impl()

void coap_log_impl ( coap_log_t  level,
const char *  format,
  ... 
)

Writes the given text to COAP_ERR_FD (for level <= COAP_LOG_CRIT) or COAP_DEBUG_FD (for level >= COAP_LOG_ERR).

The text is output only when level is below or equal to the log level that set by coap_set_log_level().

Internal function.

Parameters
levelOne of the COAP_LOG_* values. &
formatThe format string to use.

Definition at line 1187 of file coap_debug.c.

+ Here is the call graph for this function:

◆ coap_no_log()

COAP_STATIC_INLINE void coap_no_log ( void  )

Definition at line 79 of file coap_debug.h.

◆ coap_package_build()

const char * coap_package_build ( void  )

Get the library package build.

Returns
Zero-terminated string with the library build.

Definition at line 77 of file coap_debug.c.

◆ coap_package_name()

const char * coap_package_name ( void  )

Get the library package name.

Returns
Zero-terminated string with the name of this library.

Definition at line 67 of file coap_debug.c.

◆ coap_package_version()

const char * coap_package_version ( void  )

Get the library package version.

Returns
Zero-terminated string with the library version.

Definition at line 72 of file coap_debug.c.

◆ coap_print_addr()

size_t coap_print_addr ( const coap_address_t address,
unsigned char *  buffer,
size_t  size 
)

Print the address into the defined buffer.

Parameters
addressThe address to print.
bufferThe buffer to print into.
sizeThe size of the buffer to print into.
Returns
The amount written into the buffer.

Definition at line 218 of file coap_debug.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_print_ip_addr()

const char * coap_print_ip_addr ( const coap_address_t address,
char *  buffer,
size_t  size 
)

Print the IP address into the defined buffer.

Parameters
addressThe address to print.
bufferThe buffer to print into.
sizeThe size of the buffer to print into.
Returns
The pointer to provided buffer with as much of the IP address added as possible.

Definition at line 364 of file coap_debug.c.

+ Here is the caller graph for this function:

◆ coap_session_str()

const char * coap_session_str ( const coap_session_t session)

Get session description.

Parameters
sessionThe CoAP session.
Returns
description string.

Definition at line 1882 of file coap_session.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_set_log_handler()

void coap_set_log_handler ( coap_log_handler_t  handler)

Add a custom log callback handler.

Parameters
handlerThe logging handler to use or NULL to use default handler. This handler will be used for both CoAP and (D)TLS logging.

Definition at line 1182 of file coap_debug.c.

◆ coap_set_log_level()

void coap_set_log_level ( coap_log_t  level)

Sets the log level to the specified value.

Parameters
levelOne of the COAP_LOG_* values.

Definition at line 96 of file coap_debug.c.

◆ coap_set_show_pdu_output()

void coap_set_show_pdu_output ( int  use_fprintf)

Defines the output mode for the coap_show_pdu() function.

Parameters
use_fprintf1 if the output is to use fprintf() (the default) 0 if the output is to use coap_log().

Definition at line 86 of file coap_debug.c.

◆ coap_show_pdu()

void coap_show_pdu ( coap_log_t  level,
const coap_pdu_t pdu 
)

Display the contents of the specified pdu.

Note: The output method of coap_show_pdu() is dependent on the setting of coap_set_show_pdu_output().

Parameters
levelThe required minimum logging level.
pduThe PDU to decode.

Definition at line 703 of file coap_debug.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function:

◆ coap_show_tls_version()

void coap_show_tls_version ( coap_log_t  level)

Display the current (D)TLS library linked with and built for version.

Parameters
levelThe required minimum logging level.

Definition at line 1053 of file coap_debug.c.

+ Here is the call graph for this function:

◆ coap_string_tls_support()

char * coap_string_tls_support ( char *  buffer,
size_t  bufsize 
)

Build a string containing the current (D)TLS library support.

Parameters
bufferThe buffer to put the string into.
bufsizeThe size of the buffer to put the string into.
Returns
A pointer to the provided buffer.

Definition at line 1152 of file coap_debug.c.

+ Here is the call graph for this function:

◆ coap_string_tls_version()

char * coap_string_tls_version ( char *  buffer,
size_t  bufsize 
)

Build a string containing the current (D)TLS library linked with and built for version.

Parameters
bufferThe buffer to put the string into.
bufsizeThe size of the buffer to put the string into.
Returns
A pointer to the provided buffer.

Definition at line 1060 of file coap_debug.c.

+ Here is the call graph for this function:
+ Here is the caller graph for this function: