| /** |
| * @file logging.h |
| * @brief Functions for logging. |
| */ |
| #ifndef LK_LOGGING_H |
| #define LK_LOGGING_H |
| |
| #include <syslog.h> |
| #include <keymap/context.h> |
| |
| /** |
| * Logging function which uses @ref lk_ctx::log_fn "log_fn" and |
| * @ref lk_ctx::log_data "log_data" to write log messages. |
| * @param ctx is a keymap library context. |
| * @param priority indicates the priority. |
| */ |
| void lk_log(struct lk_ctx *ctx, int priority, |
| const char *file, int line, const char *fn, |
| const char *fmt, ...); |
| |
| #define lk_log_cond(ctx, level, arg...) \ |
| do { \ |
| if (ctx->log_priority >= level) \ |
| lk_log(ctx, level, __FILE__, __LINE__, __func__, ##arg); \ |
| } while (0) |
| |
| /** |
| * Wrapper to output debug-level messages |
| * @param ctx is a keymap library context. |
| * @param arg is output message. |
| */ |
| #define DBG(ctx, arg...) lk_log_cond(ctx, LOG_DEBUG, ##arg) |
| |
| /** |
| * Wrapper to output informational messages |
| * @param ctx is a keymap library context. |
| * @param arg is output message. |
| */ |
| #define INFO(ctx, arg...) lk_log_cond(ctx, LOG_INFO, ##arg) |
| |
| /** |
| * Wrapper to output warning conditions |
| * @param ctx is a keymap library context. |
| * @param arg is output message. |
| */ |
| #define WARN(ctx, arg...) lk_log_cond(ctx, LOG_WARNING, ##arg) |
| |
| /** |
| * Wrapper to output error conditions |
| * @param ctx is a keymap library context. |
| * @param arg is output message. |
| */ |
| #define ERR(ctx, arg...) lk_log_cond(ctx, LOG_ERR, ##arg) |
| |
| #endif /* LK_LOGGING_H */ |