#include <stdarg.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include <syslog.h> #include <time.h> #include "log.h" /* * The minimum log level; set to one of L_* constants from log.h */ int min_log_level = 666; /* * 0: send output to stderr * 1: send output to syslog LOG_LOCAL1 facility */ int use_syslog = 0; /* * 0: don't display toxcore TRACE messages * 1: display all toxcore messages */ int log_tox_trace = 0; /* Turn log level number to a printable string */ char *log_printable_level(int level) { switch(level) { case L_ERROR: return "ERROR"; case L_WARNING: return "WARNING"; case L_NOTICE: return "NOTICE"; case L_INFO: return "INFO"; case L_DEBUG: return "DEBUG"; case L_DEBUG2: return "DEBUG2"; } return "UNKNOWN"; } void log_init(void) { if(use_syslog) { openlog("tuntox", LOG_PID, LOG_LOCAL1); } } void log_close(void) { if(use_syslog) { closelog(); } } /* Output the log to the console */ void log_printf(int level, const char *fmt, ...) { va_list args; char logfmt[2048]; char logtime[100]; char *level_str; time_t rawtime; struct tm *timeinfo; if(level > min_log_level) { return; } if(!use_syslog) { time(&rawtime); timeinfo = localtime(&rawtime); strftime(logtime, 100, "%F %X", timeinfo); level_str = log_printable_level(level); if(fmt[strlen(fmt)-1] == '\n') { snprintf(logfmt, 2048, "%s: [%s]\t%s", logtime, level_str, fmt); } else { snprintf(logfmt, 2048, "%s: [%s]\t%s\n", logtime, level_str, fmt); } va_start(args, fmt); vfprintf(stderr, logfmt, args); va_end(args); } else { va_start(args, fmt); vsyslog(LOG_MAKEPRI(LOG_LOCAL1, level), fmt, args); va_end(args); } } void log_test(void) { int i = 112; char *x = "test"; log_printf(L_WARNING, "Testing"); log_printf(L_ERROR, "Number stodwadziesciatrzy: %d", 123); d(beenthere); dd(i); dp(&i); ds(x); } static const char *tox_log_level_name(TOX_LOG_LEVEL level) { switch (level) { case TOX_LOG_LEVEL_TRACE: return "TRACE"; case TOX_LOG_LEVEL_DEBUG: return "DEBUG"; case TOX_LOG_LEVEL_INFO: return "INFO"; case TOX_LOG_LEVEL_WARNING: return "WARNING"; case TOX_LOG_LEVEL_ERROR: return "ERROR"; } return "UNKNOWN"; } void on_tox_log(Tox *tox, TOX_LOG_LEVEL level, const char *path, uint32_t line, const char *func, const char *message, void *user_data) { uint32_t index = user_data ? *(uint32_t *)user_data : 0; const char *file = strrchr(path, '/'); if(level == TOX_LOG_LEVEL_TRACE && !log_tox_trace) { return; } file = file ? file + 1 : path; log_printf(L_DEBUG2, "[#%d] %s %s:%d\t%s:\t%s\n", index, tox_log_level_name(level), file, line, func, message); }
Mode | Type | Size | Ref | File |
---|---|---|---|---|
100644 | blob | 268 | 272c4eb3ad3672621962ce38f8c7472336729ec3 | .gitignore |
100644 | blob | 0 | e69de29bb2d1d6434b8b29ae775ad8c2e48c5391 | .sonarcloud.properties |
100644 | blob | 2088 | 300c5a7e37f67cb8cdd88261756a10be561d51c5 | .travis.yml |
100644 | blob | 1934 | 9b63571486cca0d558fb18d7826e84f8983217de | BUILD.md |
100644 | blob | 599 | 71d820fc1dbc89c5fc9d8f8bd0378115dfc95272 | Dockerfile |
100644 | blob | 4354 | 57766ae49c08698dd5e3a00cc99f8aaee0250ddd | FAQ.md |
100644 | blob | 36183 | a748cbe6c4c262ee23a751fd9a3e87d038c3a37f | LICENSE.md |
100644 | blob | 1258 | 808d57cc1b8ef4944a50798b8242f7587684983c | Makefile |
100644 | blob | 652 | 6a0550489a8718388bef0ef61e36f6a0a9d8bfdf | Makefile.mac |
100644 | blob | 6215 | b1c263d3db0d2728247d8fea652550653f6c6d1e | README.md |
100644 | blob | 1989 | f1c8658a62d5be3c1726843db101a54df9c52f47 | VPN.md |
100644 | blob | 935 | 94b43dc958d254c3b3e542e13dd5f6e4d984bdb4 | bitbucket-pipelines.yml |
100644 | blob | 77769 | 3063f74e9864b29839928800f1cfb0469ee74990 | cJSON.c |
100644 | blob | 15829 | 92907a2cd38b1e1f2e099e5cbe2f5c557b70b07b | cJSON.h |
100644 | blob | 23544 | 143c71e0474d6622fade65b4ac6c7547e358e051 | client.c |
100644 | blob | 759 | be68f25ae57282e30acf01fd0eb619763045dc1e | client.h |
040000 | tree | - | 8242200a82b7b6d771a336c7c81b4f76b8e7be84 | debian |
100644 | blob | 3389 | 3198cd41259d1954f69283b4e13ce279b4e04c46 | generate_tox_bootstrap.py |
100644 | blob | 265 | 8d1bb5fd5867d5068c9b04dc7456bdd4d42a86bf | gitversion.c |
100644 | blob | 62 | 60a75101a83869981a575d8212102b29c21ae576 | gitversion.h |
100644 | blob | 3141 | 31244349cd221b4e8931f612b3325ae59faa58cb | log.c |
100644 | blob | 892 | bcd4c9bb1af0a1f1c44b1e7a36c3a5971ba73b34 | log.h |
100644 | blob | 169 | 57385c284c57ab99d21bd53c270ebc04ecd19d31 | mach.h |
100644 | blob | 47693 | e0d9066c252fb8a2ece6d4580e6fb64e891de7b5 | main.c |
100644 | blob | 3432 | 17fb9b9b2ec49ec1db69f89b4823d3d732c9b3d8 | main.h |
040000 | tree | - | 9ea39ebb6fd8fb34f1a28a69d445d099d5001a37 | screenshots |
040000 | tree | - | b412cd72eccd06bedcb8f98492901c638dd0010b | scripts |
100644 | blob | 23115 | d4594f6d32f36b1c59c3929ea9a17bdede3d6174 | tox_bootstrap.h |
100644 | blob | 3272 | 61c6bc0d273f973522940ef64982f8c7a1781973 | tox_bootstrap_json.c |
100644 | blob | 124 | f6479b9112cbf5aab844fb733a3ab7d9f9a683b0 | tox_bootstrap_json.h |
100644 | blob | 12536 | 75e9dc5ed9399120416e8da5f24d1ccde41cf901 | utarray.h |
100644 | blob | 61492 | 7205c67efa27c66884c8d4d1c8a105d4854a0548 | uthash.h |
100644 | blob | 5052 | 0587e30bb409182ba3431f62d0ea28e2244aa094 | util.c |
100644 | blob | 808 | fea57afd725499b39ed8a36be9a0bdcefb414656 | util.h |
100644 | blob | 55882 | b5f3f04c104785a57d8280c37c1b19b36068e56e | utlist.h |
100644 | blob | 11555 | 867442c843dbe6bf096a488e3ce9ec6323809f7f | utstring.h |