| // SPDX-License-Identifier: (GPL-2.0-only OR MIT) |
| /* |
| * Copyright (C) 2024 Amlogic, Inc. All rights reserved |
| */ |
| |
| #ifndef BINC_LOGGER_H |
| #define BINC_LOGGER_H |
| |
| #include <glib.h> |
| |
| #ifdef __cplusplus |
| extern "C" { |
| #endif |
| |
| typedef enum LogLevel { |
| LOG_DEBUG = 0, LOG_INFO = 1, LOG_WARN = 2, LOG_ERROR = 3 |
| } LogLevel; |
| |
| #define log_debug(tag, format, ...) log_log_at_level(LOG_DEBUG, tag, format, ##__VA_ARGS__) |
| #define log_info(tag, format, ...) log_log_at_level(LOG_INFO, tag, format, ##__VA_ARGS__) |
| #define log_warn(tag, format, ...) log_log_at_level(LOG_WARN, tag, format, ##__VA_ARGS__) |
| #define log_error(tag, format, ...) log_log_at_level(LOG_ERROR, tag, format, ##__VA_ARGS__) |
| |
| void log_log_at_level(LogLevel level, const char* tag, const char *format, ...); |
| |
| void log_set_level(LogLevel level); |
| |
| void log_set_filename(const char* filename, long max_size, int max_files); |
| |
| typedef void (*LogEventCallback)(LogLevel level, const char *tag, const char *message); |
| |
| void log_set_handler(LogEventCallback callback); |
| |
| void log_enabled(gboolean enabled); |
| |
| #ifdef __cplusplus |
| } |
| #endif |
| |
| #endif //BINC_LOGGER_H |