From 9bffcafa9ae0c38103a8c64b3482bb099e792869 Mon Sep 17 00:00:00 2001 From: verdant Date: Tue, 28 Jul 2026 18:30:16 +0800 Subject: Move source files to src/ --- src/log.c | 61 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 61 insertions(+) create mode 100644 src/log.c (limited to 'src/log.c') diff --git a/src/log.c b/src/log.c new file mode 100644 index 0000000..436307b --- /dev/null +++ b/src/log.c @@ -0,0 +1,61 @@ +#include "log.h" + +#include +#include +#include +#include +#include + +#include "err.h" + +FILE *log_file = NULL; + +void +log_init(void) +{ + 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; + } +} -- cgit v1.2.3