blob: 6cd1ab6bf07f7a832c31046434db9f097e7f87f5 [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
Pranav Tilak0427b502025-07-16 14:18:09 +053018#define info(...) \
19 do { \
20 if ((logger != NULL) && (logger->info != NULL)) \
21 logger->info(__VA_ARGS__); \
Harrison Mutai789db582025-04-28 14:46:49 +000022 } while (0)
23
Pranav Tilak0427b502025-07-16 14:18:09 +053024#define warn(...) \
25 do { \
26 if ((logger != NULL) && (logger->warn != NULL)) \
27 logger->warn(__VA_ARGS__); \
Harrison Mutai789db582025-04-28 14:46:49 +000028 } 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