libyang 2.1.30
libyang is YANG data modelling language parser and toolkit written (and providing API) in C.
Loading...
Searching...
No Matches
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 "config.h"
22
23#ifdef __cplusplus
24extern "C" {
25#endif
26
27/* dummy context structure */
28struct ly_ctx;
29
35typedef uint8_t ly_bool;
36
88typedef enum {
92 LY_LLDBG = 3
95
104LIBYANG_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
135LIBYANG_API_DECL uint32_t ly_log_options(uint32_t opts);
136
142LIBYANG_API_DECL void ly_temp_log_options(uint32_t *opts);
143
144#ifndef NDEBUG
145
157#define LY_LDGDICT 0x01
158#define LY_LDGXPATH 0x02
159#define LY_LDGDEPSETS 0x04
173uint32_t ly_log_dbg_groups(uint32_t dbg_groups);
174
175#endif
176
188typedef void (*ly_log_clb)(LY_LOG_LEVEL level, const char *msg, const char *path);
189
200LIBYANG_API_DECL void ly_set_log_clb(ly_log_clb clb, ly_bool path);
201
206LIBYANG_API_DECL ly_log_clb ly_get_log_clb(void);
207
251typedef enum {
268 LY_EPLUGIN = 128
271
278typedef enum {
292
300 char *msg;
301 char *path;
302 char *apptag;
304 struct ly_err_item *prev; /* first item's prev points to the last item */
305};
306
315LIBYANG_API_DECL LY_VECODE ly_vecode(const struct ly_ctx *ctx);
316
323LIBYANG_API_DECL LY_ERR ly_errcode(const struct ly_ctx *ctx);
324
335LIBYANG_API_DECL const char *ly_errmsg(const struct ly_ctx *ctx);
336
350LIBYANG_API_DECL const char *ly_errpath(const struct ly_ctx *ctx);
351
362LIBYANG_API_DECL const char *ly_errapptag(const struct ly_ctx *ctx);
363
370LIBYANG_API_DECL struct ly_err_item *ly_err_first(const struct ly_ctx *ctx);
371
378LIBYANG_API_DECL struct ly_err_item *ly_err_last(const struct ly_ctx *ctx);
379
386LIBYANG_API_DECL void ly_err_print(const struct ly_ctx *ctx, struct ly_err_item *eitem);
387
396LIBYANG_API_DECL void ly_err_clean(struct ly_ctx *ctx, struct ly_err_item *eitem);
397
400#ifdef __cplusplus
401}
402#endif
403
404#endif /* LY_LOG_H_ */
libyang context handler.
struct ly_err_item * prev
Definition: log.h:304
LY_VECODE vecode
Definition: log.h:299
char * apptag
Definition: log.h:302
char * msg
Definition: log.h:300
struct ly_err_item * next
Definition: log.h:303
LY_ERR no
Definition: log.h:298
LY_LOG_LEVEL level
Definition: log.h:297
char * path
Definition: log.h:301
LIBYANG_API_DECL struct ly_err_item * ly_err_last(const struct ly_ctx *ctx)
Get the latest (thread, context-specific) generated error structure.
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_VECODE
libyang's codes of validation error. Whenever ly_errno is set to LY_EVALID, the ly_vecode is also set...
Definition: log.h:278
LIBYANG_API_DECL LY_ERR ly_errcode(const struct ly_ctx *ctx)
Get the last (thread, context-specific) error code.
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 ...
LIBYANG_API_DECL LY_VECODE ly_vecode(const struct ly_ctx *ctx)
Get the last (thread, context-specific) validation error code.
LY_ERR
libyang's error codes returned by the libyang functions.
Definition: log.h:251
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.
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 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 void ly_err_print(const struct ly_ctx *ctx, struct ly_err_item *eitem)
Print the error structure as if just generated.
@ LYVE_OTHER
Definition: log.h:290
@ LYVE_SYNTAX_JSON
Definition: log.h:287
@ LYVE_SYNTAX
Definition: log.h:280
@ LYVE_SYNTAX_XML
Definition: log.h:286
@ LYVE_DATA
Definition: log.h:288
@ LYVE_XPATH
Definition: log.h:284
@ LYVE_SEMANTICS
Definition: log.h:285
@ LYVE_SYNTAX_YANG
Definition: log.h:281
@ LYVE_SUCCESS
Definition: log.h:279
@ LYVE_REFERENCE
Definition: log.h:283
@ LYVE_SYNTAX_YIN
Definition: log.h:282
@ LY_EOTHER
Definition: log.h:266
@ LY_EDENIED
Definition: log.h:260
@ LY_EINVAL
Definition: log.h:255
@ LY_ESYS
Definition: log.h:254
@ LY_EMEM
Definition: log.h:253
@ LY_EEXIST
Definition: log.h:256
@ LY_ENOT
Definition: log.h:265
@ LY_EVALID
Definition: log.h:259
@ LY_EINT
Definition: log.h:258
@ LY_ENOTFOUND
Definition: log.h:257
@ LY_SUCCESS
Definition: log.h:252
@ LY_EPLUGIN
Definition: log.h:268
@ LY_ERECOMPILE
Definition: log.h:263
@ LY_EINCOMPLETE
Definition: log.h:261
Libyang full error structure.
Definition: log.h:296
LIBYANG_API_DECL void ly_temp_log_options(uint32_t *opts)
Set temporary thread-safe logger options overwriting those set by ly_log_options().
LIBYANG_API_DECL ly_log_clb ly_get_log_clb(void)
Get logger callback.
uint32_t ly_log_dbg_groups(uint32_t dbg_groups)
Enable specific debugging messages (independent of log level).
LIBYANG_API_DECL LY_LOG_LEVEL ly_log_level(LY_LOG_LEVEL level)
Set logger verbosity level.
LIBYANG_API_DECL uint32_t ly_log_options(uint32_t opts)
Set logger options. Default is LY_LOLOG | LY_LOSTORE_LAST.
LIBYANG_API_DECL void ly_set_log_clb(ly_log_clb clb, ly_bool path)
Set logger callback.
LY_LOG_LEVEL
Verbosity levels of the libyang logger.
Definition: log.h:88
void(* ly_log_clb)(LY_LOG_LEVEL level, const char *msg, const char *path)
Logger callback.
Definition: log.h:188
@ LY_LLERR
Definition: log.h:89
@ LY_LLVRB
Definition: log.h:91
@ LY_LLWRN
Definition: log.h:90
@ LY_LLDBG
Definition: log.h:92
uint8_t ly_bool
Type to indicate boolean value.
Definition: log.h:35