libyang  3.13.6
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
log.h
Go to the documentation of this file.
1 
16 #ifndef LY_LOG_H_
17 #define LY_LOG_H_
18 
19 #include <stdint.h>
20 
21 #include "ly_config.h"
22 
23 #ifdef __cplusplus
24 extern "C" {
25 #endif
26 
27 /* dummy context structure */
28 struct ly_ctx;
29 
35 typedef uint8_t ly_bool;
36 
88 typedef enum {
89  LY_LLERR = 0,
90  LY_LLWRN = 1,
91  LY_LLVRB = 2,
92  LY_LLDBG = 3
94 } LY_LOG_LEVEL;
95 
104 LIBYANG_API_DECL LY_LOG_LEVEL ly_log_level(LY_LOG_LEVEL level);
105 
116 #define LY_LOLOG 0x01
118 #define LY_LOSTORE 0x02
120 #define LY_LOSTORE_LAST 0x06
135 LIBYANG_API_DECL uint32_t ly_log_options(uint32_t opts);
136 
143 LIBYANG_API_DECL uint32_t *ly_temp_log_options(uint32_t *opts);
144 
156 #define LY_LDGDICT 0x01
157 #define LY_LDGXPATH 0x02
158 #define LY_LDGDEPSETS 0x04
173 LIBYANG_API_DECL uint32_t ly_log_dbg_groups(uint32_t dbg_groups);
174 
184 typedef void (*ly_log_clb)(LY_LOG_LEVEL level, const char *msg, const char *data_path, const char *schema_path,
185  uint64_t line);
186 
192 LIBYANG_API_DECL void ly_set_log_clb(ly_log_clb clb);
193 
199 LIBYANG_API_DECL ly_log_clb ly_get_log_clb(void);
200 
237 typedef enum {
238  LY_SUCCESS = 0,
239  LY_EMEM,
251  LY_ENOT,
256 } LY_ERR;
264 typedef enum {
265  LYVE_SUCCESS = 0,
266  LYVE_SYNTAX,
278 
282 struct ly_err_item {
284  LY_ERR err;
286  char *msg;
287  char *data_path;
288  char *schema_path;
289  uint64_t line;
290  char *apptag;
291  struct ly_err_item *next;
292  struct ly_err_item *prev;
293 };
301 LIBYANG_API_DECL const char *ly_strerr(LY_ERR err);
302 
309 LIBYANG_API_DECL const char *ly_strvecode(LY_VECODE vecode);
310 
319 LIBYANG_API_DECL const char *ly_last_logmsg(void);
320 
327 LIBYANG_API_DECL const struct ly_err_item *ly_err_first(const struct ly_ctx *ctx);
328 
335 LIBYANG_API_DECL const struct ly_err_item *ly_err_last(const struct ly_ctx *ctx);
336 
343 LIBYANG_API_DECL void ly_err_print(const struct ly_ctx *ctx, const struct ly_err_item *eitem);
344 
353 LIBYANG_API_DECL void ly_err_clean(struct ly_ctx *ctx, struct ly_err_item *eitem);
354 
357 #ifdef __cplusplus
358 }
359 #endif
360 
361 #endif /* LY_LOG_H_ */
LY_LOG_LEVEL level
Definition: log.h:286
char * schema_path
Definition: log.h:291
LIBYANG_API_DECL uint32_t * ly_temp_log_options(uint32_t *opts)
Set temporary thread-safe logger options overwriting those set by ly_log_options().
Definition: log.h:242
uint8_t ly_bool
Type to indicate boolean value.
Definition: log.h:28
Definition: log.h:255
LY_ERR err
Definition: log.h:287
LY_VECODE
libyang&#39;s codes of validation error. Whenever ly_errno is set to LY_EVALID, the ly_vecode is also set...
Definition: log.h:267
char * apptag
Definition: log.h:293
char * msg
Definition: log.h:289
void(* ly_log_clb)(LY_LOG_LEVEL level, const char *msg, const char *data_path, const char *schema_path, uint64_t line)
Logger callback.
Definition: log.h:187
LIBYANG_API_DECL const struct ly_err_item * ly_err_first(const struct ly_ctx *ctx)
Get the first (thread, context-specific) generated error structure.
Definition: log.h:247
LIBYANG_API_DECL const char * ly_strvecode(LY_VECODE vecode)
Get human-readable error message for a validation error code.
LIBYANG_API_DECL void ly_set_log_clb(ly_log_clb clb)
Set logger callback.
Definition: log.h:90
Libyang full error structure.
Definition: log.h:285
Definition: log.h:277
LY_LOG_LEVEL
Verbosity levels of the libyang logger.
Definition: log.h:88
Definition: log.h:248
LIBYANG_API_DECL ly_log_clb ly_get_log_clb(void)
Get logger callback.
LIBYANG_API_DECL void ly_err_print(const struct ly_ctx *ctx, const struct ly_err_item *eitem)
Print the error structure as if just generated.
LIBYANG_API_DECL const char * ly_strerr(LY_ERR err)
Get human-readable error message for an error code.
Definition: log.h:91
struct ly_err_item * prev
Definition: log.h:295
Definition: log.h:92
Definition: log.h:89
LIBYANG_API_DECL LY_LOG_LEVEL ly_log_level(LY_LOG_LEVEL level)
Set logger verbosity level.
LIBYANG_API_DECL void ly_err_clean(struct ly_ctx *ctx, struct ly_err_item *eitem)
Free error structures from a context.
LIBYANG_API_DECL const struct ly_err_item * ly_err_last(const struct ly_ctx *ctx)
Get the latest (thread, context-specific) generated error structure.
Definition: log.h:254
Definition: log.h:245
LY_VECODE vecode
Definition: log.h:288
LIBYANG_API_DECL const char * ly_last_logmsg(void)
Get the last (thread-specific) full logged error message.
struct ly_err_item * next
Definition: log.h:294
Definition: log.h:243
LY_ERR
libyang&#39;s error codes returned by the libyang functions.
Definition: log.h:240
uint64_t line
Definition: log.h:292
libyang context handler.
char * data_path
Definition: log.h:290
Definition: log.h:244