blob: 21264e42ba3624bb54ac77ca8217e285992ac678 [file] [log] [blame]
// 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