diff options
Diffstat (limited to 'sway/log.c')
-rw-r--r-- | sway/log.c | 43 |
1 files changed, 43 insertions, 0 deletions
diff --git a/sway/log.c b/sway/log.c new file mode 100644 index 00000000..6ac7026f --- /dev/null +++ b/sway/log.c @@ -0,0 +1,43 @@ +#include "log.h" +#include <stdarg.h> +#include <stdio.h> +#include <stdlib.h> + +int colored = 1; +int v = 0; + +const char *verbosity_colors[] = { + "", // L_SILENT + "\x1B[1;31m", // L_ERROR + "\x1B[1;34m", // L_INFO + "\x1B[1;30m", // L_DEBUG +}; + +void init_log(int verbosity) { + v = verbosity; +} + +void sway_abort(char *format, ...) { + fprintf(stderr, "ERROR: "); + va_list args; + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + fprintf(stderr, "\n"); + exit(1); +} + +void sway_log(int verbosity, char* format, ...) { + if (verbosity <= v) { + int c = verbosity; + if (c > sizeof(verbosity_colors) / sizeof(char *)) { + c = sizeof(verbosity_colors) / sizeof(char *) - 1; + } + fprintf(stderr, verbosity_colors[c]); + va_list args; + va_start(args, format); + vfprintf(stderr, format, args); + va_end(args); + fprintf(stderr, "\x1B[0m\n"); + } +} |