blob: 240a5f713cf6a047b537587284eeeb0db4a6b7a8 [file] [log] [blame]
/*
* Copyright The Transfer List Library Contributors
*
* SPDX-License-Identifier: MIT OR GPL-2.0-or-later
*/
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include "logging.h"
static struct logger_interface _logger;
struct logger_interface *logger = NULL;
static void default_log(const char *level, const char *fmt, va_list args)
{
printf("[%s] ", level);
vprintf(fmt, args);
}
static void libtl_info(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
default_log("INFO", fmt, args);
va_end(args);
}
static void libtl_warn(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
default_log("WARN", fmt, args);
va_end(args);
}
void libtl_error(const char *fmt, ...)
{
va_list args;
va_start(args, fmt);
default_log("ERROR", fmt, args);
va_end(args);
}
void libtl_register_logger(struct logger_interface *user_logger)
{
if (user_logger != NULL) {
logger = user_logger;
}
_logger.info = libtl_info;
_logger.warn = libtl_warn;
_logger.error = libtl_error;
logger = &_logger;
};