summaryrefslogtreecommitdiff
path: root/protocols/Tox/libtox/src/toxcore/logger.c
diff options
context:
space:
mode:
authoraunsane <aunsane@gmail.com>2018-04-13 22:54:05 +0300
committeraunsane <aunsane@gmail.com>2018-04-13 22:54:27 +0300
commit430f999f00224a68a967e7122894b469d5ee60bf (patch)
treeb552ff57e5c8a0f1de49208eb511f4edb38f2032 /protocols/Tox/libtox/src/toxcore/logger.c
parent81dd07b3ae0c7f31da0c6766b8b325e2601e4195 (diff)
Tox: added logging from toxcore
- toxcore updated to 0.2.1 - toxcore now bootstraped with random two nodes - version bump
Diffstat (limited to 'protocols/Tox/libtox/src/toxcore/logger.c')
-rw-r--r--protocols/Tox/libtox/src/toxcore/logger.c51
1 files changed, 48 insertions, 3 deletions
diff --git a/protocols/Tox/libtox/src/toxcore/logger.c b/protocols/Tox/libtox/src/toxcore/logger.c
index 18b765a385..ff34f994ea 100644
--- a/protocols/Tox/libtox/src/toxcore/logger.c
+++ b/protocols/Tox/libtox/src/toxcore/logger.c
@@ -27,6 +27,7 @@
#include "logger.h"
+#include <assert.h>
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
@@ -38,6 +39,42 @@ struct Logger {
void *userdata;
};
+#ifdef USE_STDERR_LOGGER
+static const char *logger_level_name(LOGGER_LEVEL level)
+{
+ switch (level) {
+ case LOG_TRACE:
+ return "TRACE";
+
+ case LOG_DEBUG:
+ return "DEBUG";
+
+ case LOG_INFO:
+ return "INFO";
+
+ case LOG_WARNING:
+ return "WARNING";
+
+ case LOG_ERROR:
+ return "ERROR";
+ }
+
+ return "<unknown>";
+}
+
+static void logger_stderr_handler(void *context, LOGGER_LEVEL level, const char *file, int line, const char *func,
+ const char *message, void *userdata)
+{
+ // GL stands for "global logger".
+ fprintf(stderr, "[GL] %s %s:%d(%s): %s\n", logger_level_name(level), file, line, func, message);
+}
+
+static const Logger logger_stderr = {
+ logger_stderr_handler,
+ nullptr,
+ nullptr,
+};
+#endif
/**
* Public Functions
@@ -59,10 +96,18 @@ void logger_callback_log(Logger *log, logger_cb *function, void *context, void *
log->userdata = userdata;
}
-void logger_write(Logger *log, LOGGER_LEVEL level, const char *file, int line, const char *func, const char *format,
- ...)
+void logger_write(const Logger *log, LOGGER_LEVEL level, const char *file, int line, const char *func,
+ const char *format, ...)
{
- if (!log || !log->callback) {
+ if (!log) {
+#ifdef USE_STDERR_LOGGER
+ log = &logger_stderr;
+#else
+ assert(!"NULL logger not permitted");
+#endif
+ }
+
+ if (!log->callback) {
return;
}