diff options
-rw-r--r-- | Makefile | 2 | ||||
-rw-r--r-- | log.c | 38 | ||||
-rw-r--r-- | log.h | 23 |
3 files changed, 62 insertions, 1 deletions
@@ -1,7 +1,7 @@ CFLAGS=-Wall -Wextra -O0 -g -pipe -D_GNU_SOURCE -fdiagnostics-show-option -Wno-unused-parameter LIBS=-lrt -COMMON=name.o util.o set.o hashmap.o strv.o job.o manager.o conf-parser.o load-fragment.o socket-util.c +COMMON=name.o util.o set.o hashmap.o strv.o job.o manager.o conf-parser.o load-fragment.o socket-util.o log.o all: systemd test-engine @@ -0,0 +1,38 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifdef HAVE_CONFIG_H +#include <config.h> +#endif + +#include <stdarg.h> +#include <stdio.h> + +#include "log.h" + +void log_meta( + int level, + const char*file, + int line, + const char *func, + const char *format, ...) { + + const char *prefix, *suffix; + va_list ap; + + if (LOG_PRI(level) <= LOG_ERR) { + prefix = "\x1B[1;31m"; + suffix = "\x1B[0m"; + } else { + prefix = ""; + suffix = ""; + } + + va_start(ap, format); + + fprintf(stderr, "(%s:%u) %s", file, line, prefix); + vfprintf(stderr, format, ap); + fprintf(stderr, "%s\n", suffix); + + va_end(ap); + +} @@ -0,0 +1,23 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifndef foologhfoo +#define foologhfoo + +#include <syslog.h> + +#include "macro.h" + +void log_meta( + int level, + const char*file, + int line, + const char *func, + const char *format, ...) __printf_attr(5,6); + +#define log_debug(...) log_meta(LOG_DEBUG, __FILE__, __LINE__, __func__, __VA_ARGS__) +#define log_info(...) log_meta(LOG_INFO, __FILE__, __LINE__, __func__, __VA_ARGS__) +#define log_notice(...) log_meta(LOG_NOTICE, __FILE__, __LINE__, __func__, __VA_ARGS__) +#define log_warning(...) log_meta(LOG_WARNING, __FILE__, __LINE__, __func__, __VA_ARGS__) +#define log_error(...) log_meta(LOG_ERR, __FILE__, __LINE__, __func__, __VA_ARGS__) + +#endif |