aboutsummaryrefslogtreecommitdiff
path: root/client/libacron/private/log.c
diff options
context:
space:
mode:
authorTrumeet <yuuta@yuuta.moe>2022-07-20 18:12:22 -0700
committerTrumeet <yuuta@yuuta.moe>2022-07-20 18:12:22 -0700
commitb4afa06e383325f4a0c751a64ca896d769db07a8 (patch)
tree7647fdd73d4f487de778c27aea99bf890458b647 /client/libacron/private/log.c
parentda14a17298c67d83e6da4732f47304954acc26fc (diff)
downloadacron-b4afa06e383325f4a0c751a64ca896d769db07a8.tar
acron-b4afa06e383325f4a0c751a64ca896d769db07a8.tar.gz
acron-b4afa06e383325f4a0c751a64ca896d769db07a8.tar.bz2
acron-b4afa06e383325f4a0c751a64ca896d769db07a8.zip
libac: First Commit
Diffstat (limited to 'client/libacron/private/log.c')
-rw-r--r--client/libacron/private/log.c52
1 files changed, 52 insertions, 0 deletions
diff --git a/client/libacron/private/log.c b/client/libacron/private/log.c
new file mode 100644
index 0000000..b5a246a
--- /dev/null
+++ b/client/libacron/private/log.c
@@ -0,0 +1,52 @@
+/*
+ * Created by yuuta on 1/1/22.
+ */
+
+#include "log.h"
+#include "config.h"
+
+#include <stdio.h>
+#include <stdarg.h>
+#include <assert.h>
+
+void g_log(enum log_level level,
+ const char *file,
+ int line,
+ const char *format,
+ ...) {
+ if (config == NULL || config->out == NULL) {
+ return;
+ }
+ FILE *stream = config->out;
+ switch (level) {
+ case log_fetal:
+ fprintf(stream, "F");
+ break;
+ case log_error:
+ fprintf(stream, "E");
+ break;
+ case log_warn:
+ fprintf(stream, "W");
+ break;
+ case log_info:
+ fprintf(stream, "I");
+ break;
+ case log_debug:
+#ifdef DEBUG
+ fprintf(stream, "D");
+ break;
+#else
+ return;
+#endif
+ default:
+ fprintf(stderr, "Unknown log level: %d.\n", level);
+ assert(0);
+ }
+ fprintf(stream, "[%s:%d]: ",
+ file, line);
+ va_list list;
+ va_start(list, format);
+ vfprintf(stream, format, list);
+ va_end(list);
+ fprintf(stream, "\n");
+}