summaryrefslogtreecommitdiff
path: root/src/log.c
diff options
context:
space:
mode:
authorsteven-na <noreply.github@stvnc.dev>2026-08-14 04:04:33 -0700
committersteven-na <noreply.github@stvnc.dev>2026-08-14 04:04:33 -0700
commit2f6e71222f347949786892803df431184fc61903 (patch)
treec2b012093d8882c52423d4515caa920c0645ec29 /src/log.c
parentabc88dd876c9aab0690074fc29802ca99060b7a7 (diff)
Add log_init
Diffstat (limited to 'src/log.c')
-rw-r--r--src/log.c17
1 files changed, 13 insertions, 4 deletions
diff --git a/src/log.c b/src/log.c
index 2d7eaa2..03b81e9 100644
--- a/src/log.c
+++ b/src/log.c
@@ -8,6 +8,8 @@ static struct {
log_LockProc lock_proc;
LogLevelE lvl;
b32 quiet;
+ b32 inited;
+ FILE *log_default;
FILE *log_file;
} L;
@@ -29,6 +31,11 @@ void log_set_level(LogLevelE lvl) {
L.lvl = lvl;
}
+void log_init(FILE *out) {
+ L.inited = true;
+ L.log_default = out;
+}
+
void log_set_quiet(b32 quiet) {
L.quiet = quiet;
}
@@ -55,6 +62,8 @@ static inline void write_to_file(LogLevelE lvl, const char *src_file, u64 src_li
}
void log_log(LogLevelE lvl, const char *src_file, u64 src_line, const char *fmt, ...) {
+ if (!L.inited) return;
+
lock();
va_list va;
@@ -72,15 +81,15 @@ void log_log(LogLevelE lvl, const char *src_file, u64 src_line, const char *fmt,
time_str[strftime(time_str, sizeof(time_str), "%H:%M:%S", time)] = '\0';
#ifndef LOG_NO_COLOR
- fprintf(stdout, "%s %s%-5s\x1b[0m\x1b[90m%s:%lu:\x1b[0m ",
+ fprintf(L.log_default, "%s %s%-5s\x1b[0m\x1b[90m%s:%lu:\x1b[0m ",
time_str, level_colors[lvl], level_strings[lvl], src_file, src_line);
#else
- fprintf(stdout, "%s %-5s %s:%lu: ",
+ fprintf(L.log_default, "%s %-5s %s:%lu: ",
time_str, level_strings[L.lvl], src_file, src_line);
#endif /* ifndef LOG_NO_COLOR */
- vfprintf(stdout, fmt, va);
- fprintf(stdout, "\n");
+ vfprintf(L.log_default, fmt, va);
+ fprintf(L.log_default, "\n");
skip:
write_to_file(lvl, src_file, src_line, fmt, time, fva);