blob: 240a5f713cf6a047b537587284eeeb0db4a6b7a8 [file] [log] [blame]
Harrison Mutai789db582025-04-28 14:46:49 +00001/*
2 * Copyright The Transfer List Library Contributors
3 *
4 * SPDX-License-Identifier: MIT OR GPL-2.0-or-later
5 */
6
7#include <stdarg.h>
8#include <stdio.h>
9#include <stdlib.h>
10
11#include "logging.h"
12
13static struct logger_interface _logger;
14struct logger_interface *logger = NULL;
15
16static void default_log(const char *level, const char *fmt, va_list args)
17{
18 printf("[%s] ", level);
19 vprintf(fmt, args);
20}
21
22static void libtl_info(const char *fmt, ...)
23{
24 va_list args;
25 va_start(args, fmt);
26 default_log("INFO", fmt, args);
27 va_end(args);
28}
29
30static void libtl_warn(const char *fmt, ...)
31{
32 va_list args;
33 va_start(args, fmt);
34 default_log("WARN", fmt, args);
35 va_end(args);
36}
37
38void libtl_error(const char *fmt, ...)
39{
40 va_list args;
41 va_start(args, fmt);
42 default_log("ERROR", fmt, args);
43 va_end(args);
44}
45
46void libtl_register_logger(struct logger_interface *user_logger)
47{
48 if (user_logger != NULL) {
49 logger = user_logger;
50 }
51
52 _logger.info = libtl_info;
53 _logger.warn = libtl_warn;
54 _logger.error = libtl_error;
55
56 logger = &_logger;
57};