libcoap 4.3.2rc2

Macros | Typedefs | Enumerations | Functions
Logging Support
Application API

API for logging support. More...

## 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_dtls_get_log_level
coap_log_t coap_dtls_get_log_level(void)
Get the current (D)TLS logging.
Definition: coap_notls.c:139
COAP_LOG_DTLS_BASE
@ 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

  level | One 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_get_log_level
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

  level | One 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

  level | One of the COAP_LOG_* values, or if used for (D)TLS logging, COAP_LOG_DTLS_BASE + one of the COAP_LOG_* values.
  message | Zero-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 139 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

  level | One of the COAP_LOG_* values.

Definition at line 134 of file coap_notls.c.

## ◆ coap_endpoint_str()

const char * coap_endpoint_str | ( | const coap_endpoint_t * | endpoint | ) |

Get endpoint description.

Parameters

  endpoint | The 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.

## ◆ 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

  level | One of the COAP_LOG_* values. &
  format | The format string to use.

Definition at line 1187 of file coap_debug.c.

## ◆ 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.

Internal Function.

Parameters

  address | The address to print.
  buffer | The buffer to print into.
  size | The size of the buffer to print into.

Returns
  The amount written into the buffer.

Definition at line 218 of file coap_debug.c.

## ◆ 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.

Internal Function.

Parameters

  address | The address to print.
  buffer | The buffer to print into.
  size | The 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.

## ◆ coap_session_str()

const char * coap_session_str | ( | const coap_session_t * | session | ) |

Get session description.

Parameters

  session | The CoAP session.

Returns
  description string.

Definition at line 1881 of file coap_session.c.

## ◆ coap_set_log_handler()

void coap_set_log_handler | ( | coap_log_handler_t | handler | ) |

Add a custom log callback handler.

Parameters

  handler | The 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

  level | One 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_fprintf | `1` 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

  level | The required minimum logging level.
  pdu | The PDU to decode.

Definition at line 703 of file coap_debug.c.

## ◆ 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

  level | The required minimum logging level.

Definition at line 1053 of file coap_debug.c.

## ◆ 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

  buffer | The buffer to put the string into.
  bufsize | The 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.

## ◆ 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

  buffer | The buffer to put the string into.
  bufsize | The 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.