comparison libsci/log.h @ 33:1d0ddf9e6efd

misc: general documentation
author David Demelier <markand@malikania.fr>
date Thu, 04 Aug 2022 16:47:10 +0200
parents lib/log.h@081e1c258e64
children 71cd8447e3a4
comparison
equal deleted inserted replaced
32:081e1c258e64 33:1d0ddf9e6efd
1 /*
2 * log.h -- logging routines
3 *
4 * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr>
5 *
6 * Permission to use, copy, modify, and/or distribute this software for any
7 * purpose with or without fee is hereby granted, provided that the above
8 * copyright notice and this permission notice appear in all copies.
9 *
10 * THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES
11 * WITH REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF
12 * MERCHANTABILITY AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR
13 * ANY SPECIAL, DIRECT, INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES
14 * WHATSOEVER RESULTING FROM LOSS OF USE, DATA OR PROFITS, WHETHER IN AN
15 * ACTION OF CONTRACT, NEGLIGENCE OR OTHER TORTIOUS ACTION, ARISING OUT OF
16 * OR IN CONNECTION WITH THE USE OR PERFORMANCE OF THIS SOFTWARE.
17 */
18
19 #ifndef SCI_LOG_H
20 #define SCI_LOG_H
21
22 #include <stdarg.h>
23 #include <stdlib.h>
24
25 enum log_level {
26 LOG_LEVEL_WARNING = 1,
27 LOG_LEVEL_INFO,
28 LOG_LEVEL_DEBUG
29 };
30
31 #define log_debug(...) log_write(LOG_LEVEL_DEBUG, __VA_ARGS__)
32 #define log_warn(...) log_write(LOG_LEVEL_WARNING, __VA_ARGS__)
33 #define log_info(...) log_write(LOG_LEVEL_INFO, __VA_ARGS__)
34 #define log_die(...) do { \
35 log_write(LOG_LEVEL_WARNING, __VA_ARGS__); \
36 exit(1); \
37 } while (0)
38
39 void
40 log_open(const char *);
41
42 void
43 log_write(enum log_level, const char *, ...);
44
45 void
46 log_vwrite(enum log_level, const char *, va_list);
47
48 void
49 log_finish(void);
50
51 #endif /* !SCI_LOG_H */