40 lines
1.1 KiB
C
40 lines
1.1 KiB
C
#pragma once
|
|
|
|
#include <stdio.h>
|
|
|
|
#ifdef LOG_IMPL
|
|
int LOG_LEVEL;
|
|
#else
|
|
extern char LOG_LEVEL;
|
|
#endif
|
|
|
|
static inline void set_log_level(char level) {
|
|
LOG_LEVEL = level;
|
|
}
|
|
|
|
// log level bitmasks
|
|
#define LL_ERR 0b10000000
|
|
#define LL_WARN 0b01000000
|
|
#define LL_INFO 0b00100000
|
|
#define LL_OK 0b00010000
|
|
#define LL_ALL 0b11110000
|
|
|
|
#define LL_NONE 0
|
|
|
|
#define C_NORMAL "\033[0m"
|
|
#define C_RED "\033[31m"
|
|
#define C_YELLOW "\033[33m"
|
|
#define C_BLUE "\033[34m"
|
|
#define C_GREEN "\033[32m"
|
|
|
|
#define LOG_ERR C_RED "[!]" C_NORMAL
|
|
#define LOG_WARN C_YELLOW "[-]" C_NORMAL
|
|
#define LOG_INFO C_BLUE "[*]" C_NORMAL
|
|
#define LOG_OK C_GREEN "[+]" C_NORMAL
|
|
|
|
// macros
|
|
#define log_err_m(msg, ...) (LOG_LEVEL&LL_ERR) ? fprintf(stderr, LOG_ERR " " msg "\n" , ##__VA_ARGS__):0
|
|
#define log_warn_m(msg, ...) (LOG_LEVEL&LL_WARN) ? printf(LOG_WARN " " msg "\n" , ##__VA_ARGS__):0
|
|
#define log_ok_m(msg, ...) (LOG_LEVEL&LL_OK) ? printf(LOG_OK " " msg "\n" , ##__VA_ARGS__):0
|
|
#define log_info_m(msg, ...) (LOG_LEVEL&LL_INFO) ? printf(LOG_INFO " " msg "\n" , ##__VA_ARGS__):0
|