blob: 624120a28bc30f54b1c35e319c6bf188176de5e4 [file] [log] [blame]
#ifndef LOG_MAKER_H
#define LOG_MAKER_H
#if _MSC_VER
#define snprintf _snprintf
#endif
#define LOG_ERR "ERROR"
#define LOG_WARNING "WARN"
#define LOG_NOTICE "NOTICE"
#define LOG_INFO "INFO"
#define LOG_DEBUG "DEBUG"
// TODO
void set_log_output_function(char* func);
void log_init(void);
void set_log_dir(const char*, const char*);
void set_log_level(int level);
void close_log(void);
void log_msg_prefix(char* level, char* filename, int linenum, const char* function);
void log_msg(char* level, char *msg, ...);
#define filename_len 1024
char log_filename[filename_len];
int log_file_fd;
static int log_level_initialised = 0;
char logging_dir[filename_len];
char log_symlink[filename_len];
#define LOG_THIS(level, msg, ...) do { \
log_msg_prefix(level, __FILE__, __LINE__, __FUNCTION__); \
log_msg(level, msg, __VA_ARGS__); \
} while (0)
#define LOG_ERROR_MSG(msg, ...) LOG_THIS(LOG_ERR, msg, __VA_ARGS__);
#define LOG_WARNING_MSG(msg, ...) LOG_THIS(LOG_WARNING, msg, __VA_ARGS__);
#define LOG_NOTICE_MSG(msg, ...) LOG_THIS(LOG_NOTICE, msg, __VA_ARGS__);
#define LOG_INFO_MSG(msg, ...) LOG_THIS(LOG_INFO, msg, __VA_ARGS__);
#define LOG_DEBUG_MSG(msg, ...) LOG_THIS(LOG_DEBUG, msg, __VA_ARGS__);
#endif /* LOG_MAKER_H_H */