#include "log.h" #include #include #include #include #include #include "err.h" #include "utils.h" FILE* log_file = NULL; void log_init(void) { if (is_debug()) { log_file = fopen("./log", "a"); } else { log_file = fopen(LOG_FILEPATH, "a"); } if (!log_file) { die("Faild to open log file"); } } void log_write(log_level level, const char* fmt, ...) { char* level_str; if (level == LOG_INFO) level_str = "INFO"; if (level == LOG_WARN) level_str = "WARN"; if (level == LOG_ERR) level_str = "ERR"; time_t rawtime; struct tm* timeinfo; char time_str[32]; time(&rawtime); timeinfo = localtime(&rawtime); strftime(time_str, sizeof(time_str), "%Y-%m-%d %H:%M:%S", timeinfo); fprintf(log_file, "[%s] [%s] ", time_str, level_str); va_list ap; va_start(ap, fmt); vfprintf(log_file, fmt, ap); va_end(ap); fprintf(log_file, "\n"); fflush(log_file); } void log_end(FILE* log_file) { if (log_file) { fclose(log_file); log_file = NULL; } }