Mercurial > sci
annotate 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 |
rev | line source |
---|---|
18 | 1 /* |
2 * log.h -- logging routines | |
3 * | |
32
081e1c258e64
misc: update copyright years
David Demelier <markand@malikania.fr>
parents:
18
diff
changeset
|
4 * Copyright (c) 2020-2022 David Demelier <markand@malikania.fr> |
18 | 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 */ |