libyang  2.0.164
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
log.h
Go to the documentation of this file.
1 
15 #ifndef LY_LOG_H_
16 #define LY_LOG_H_
17 
18 #include <stdint.h>
19 
20 #include "config.h"
21 
22 #ifdef __cplusplus
23 extern "C" {
24 #endif
25 
26 /* dummy context structure */
27 struct ly_ctx;
28 
34 typedef uint8_t ly_bool;
35 
87 typedef enum
88 {
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 
137 #ifndef NDEBUG
138 
150 #define LY_LDGDICT 0x01
151 #define LY_LDGXPATH 0x02
152 #define LY_LDGDEPSETS 0x04
166 uint32_t ly_log_dbg_groups(uint32_t dbg_groups);
167 
168 #endif
169 
181 typedef void (*ly_log_clb)(LY_LOG_LEVEL level, const char *msg, const char *path);
182 
193 LIBYANG_API_DECL void ly_set_log_clb(ly_log_clb clb, ly_bool path);
194 
199 LIBYANG_API_DECL ly_log_clb ly_get_log_clb(void);
200 
244 typedef enum {
245  LY_SUCCESS = 0,
246  LY_EMEM,
258  LY_ENOT,
263 } LY_ERR;
271 typedef enum {
272  LYVE_SUCCESS = 0,
273  LYVE_SYNTAX,
285 
289 struct ly_err_item {
291  LY_ERR no;
293  char *msg;
294  char *path;
295  char *apptag;
296  struct ly_err_item *next;
297  struct ly_err_item *prev; /* first item's prev points to the last item */
298 };
308 LIBYANG_API_DECL LY_VECODE ly_vecode(const struct ly_ctx *ctx);
309 
316 LIBYANG_API_DECL LY_ERR ly_errcode(const struct ly_ctx *ctx);
317 
328 LIBYANG_API_DECL const char *ly_errmsg(const struct ly_ctx *ctx);
329 
343 LIBYANG_API_DECL const char *ly_errpath(const struct ly_ctx *ctx);
344 
355 LIBYANG_API_DECL const char *ly_errapptag(const struct ly_ctx *ctx);
356 
363 LIBYANG_API_DECL struct ly_err_item *ly_err_first(const struct ly_ctx *ctx);
364 
371 LIBYANG_API_DECL struct ly_err_item *ly_err_last(const struct ly_ctx *ctx);
372 
379 LIBYANG_API_DECL void ly_err_print(const struct ly_ctx *ctx, struct ly_err_item *eitem);
380 
389 LIBYANG_API_DECL void ly_err_clean(struct ly_ctx *ctx, struct ly_err_item *eitem);
390 
393 #ifdef __cplusplus
394 }
395 #endif
396 
397 #endif /* LY_LOG_H_ */
LY_LOG_LEVEL level
Definition: log.h:293
LIBYANG_API_DECL LY_VECODE ly_vecode(const struct ly_ctx *ctx)
Get the last (thread, context-specific) validation error code.
LIBYANG_API_DECL void ly_err_print(const struct ly_ctx *ctx, struct ly_err_item *eitem)
Print the error structure as if just generated.
Definition: log.h:249
uint8_t ly_bool
Type to indicate boolean value.
Definition: log.h:27
LIBYANG_API_DECL const char * ly_errmsg(const struct ly_ctx *ctx)
Get the last (thread, context-specific) error message. If the coresponding module defined a specific ...
Definition: log.h:262
LIBYANG_API_DECL void ly_set_log_clb(ly_log_clb clb, ly_bool path)
Set logger callback.
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:274
char * apptag
Definition: log.h:298
char * msg
Definition: log.h:296
LIBYANG_API_DECL LY_ERR ly_errcode(const struct ly_ctx *ctx)
Get the last (thread, context-specific) error code.
void(* ly_log_clb)(LY_LOG_LEVEL level, const char *msg, const char *path)
Logger callback.
Definition: log.h:184
Definition: log.h:254
LIBYANG_API_DECL const char * ly_errpath(const struct ly_ctx *ctx)
Get the last (thread, context-specific) path of the element where was an error.
char * path
Definition: log.h:297
Definition: log.h:90
Libyang full error structure.
Definition: log.h:292
Definition: log.h:284
LY_LOG_LEVEL
Verbosity levels of the libyang logger.
Definition: log.h:87
Definition: log.h:255
LIBYANG_API_DECL ly_log_clb ly_get_log_clb(void)
Get logger callback.
Definition: log.h:91
struct ly_err_item * prev
Definition: log.h:300
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.
Definition: log.h:261
Definition: log.h:252
LY_VECODE vecode
Definition: log.h:295
LIBYANG_API_DECL struct ly_err_item * ly_err_last(const struct ly_ctx *ctx)
Get the latest (thread, context-specific) generated error structure.
struct ly_err_item * next
Definition: log.h:299
Definition: log.h:250
LY_ERR
libyang&#39;s error codes returned by the libyang functions.
Definition: log.h:247
LIBYANG_API_DECL const char * ly_errapptag(const struct ly_ctx *ctx)
Get the last (thread, context-specific) error-app-tag if there was a specific one defined in the modu...
LIBYANG_API_DECL struct ly_err_item * ly_err_first(const struct ly_ctx *ctx)
Get the first (thread, context-specific) generated error structure.
LY_ERR no
Definition: log.h:294
libyang context handler.
Definition: log.h:251