feat: added basic logging
This commit is contained in:
parent
32687e0b49
commit
5dc772e507
3 changed files with 76 additions and 5 deletions
38
include/log.h
Normal file
38
include/log.h
Normal file
|
|
@ -0,0 +1,38 @@
|
|||
#ifndef LANDER_LOG
|
||||
#define LANDER_LOG
|
||||
|
||||
#include <stdarg.h>
|
||||
#include <stdio.h>
|
||||
#include <string.h>
|
||||
#include <unistd.h>
|
||||
|
||||
typedef enum log_level {
|
||||
log_level_debug = 0,
|
||||
log_level_info = 1,
|
||||
log_level_warning = 2,
|
||||
log_level_error = 3,
|
||||
log_level_critical = 4,
|
||||
} log_level;
|
||||
|
||||
extern const char *log_level_names[];
|
||||
|
||||
void _lander_log(log_level level, FILE *f, const char *fmt, ...);
|
||||
|
||||
#define flog(level, f, ...) _lander_log(level, f, __VA_ARGS__)
|
||||
#define log(level, ...) _lander_log(level, NULL, __VA_ARGS__)
|
||||
#define debug(...) _lander_log(log_level_debug, NULL, __VA_ARGS__)
|
||||
#define fdebug(f, ...) _lander_log(log_level_debug, f, __VA_ARGS__)
|
||||
#define info(...) _lander_log(log_level_info, NULL, __VA_ARGS__)
|
||||
#define finfo(f, ...) _lander_log(log_level_info, f, __VA_ARGS__)
|
||||
#define warning(...) _lander_log(log_level_warning, NULL, __VA_ARGS__)
|
||||
#define fwarning(f, ...) _lander_log(log_level_warning, f, __VA_ARGS__)
|
||||
#define error(...) _lander_log(log_level_error, NULL, __VA_ARGS__)
|
||||
#define ferror(f, ...) _lander_log(log_level_error, f, __VA_ARGS__)
|
||||
#define critical(status, ...) \
|
||||
_lander_log(log_level_critical, NULL, __VA_ARGS__); \
|
||||
exit(status)
|
||||
#define fcritical(status, f, ...) \
|
||||
_lander_log(log_level_critical, f, __VA_ARGS__); \
|
||||
exit(status)
|
||||
|
||||
#endif
|
||||
Loading…
Add table
Add a link
Reference in a new issue