blob: fdfb2cdb9471a75760281e953bf88110519a672a [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#ifndef LOGGING_H
8#define LOGGING_H
9
10struct logger_interface {
11 void (*info)(const char *fmt, ...);
12 void (*warn)(const char *fmt, ...);
13 void (*error)(const char *fmt, ...);
14};
15
16extern struct logger_interface *logger;
17
18#define info(...) \
19 do { \
20 if (logger && logger->info) \
21 logger->info(__VA_ARGS__); \
22 } while (0)
23
24#define warn(...) \
25 do { \
26 if (logger && logger->warn) \
27 logger->warn(__VA_ARGS__); \
28 } while (0)
29
30#define error(...) \
31 do { \
32 if (logger && logger->error) \
33 logger->error(__VA_ARGS__); \
34 } while (0)
35
36void libtl_register_logger(struct logger_interface *user_logger);
37
38#endif