From: Lennart Poettering Date: Wed, 20 Jan 2010 18:18:52 +0000 (+0100) Subject: add minimal logging framework X-Git-Tag: 0.git+20100605+dfd8ee-1~438 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5899f3b7f62151dade30010370fb5d2bcdb93d3a;p=systemd add minimal logging framework --- diff --git a/Makefile b/Makefile index cc55d4d1..f4bbb2ae 100644 --- a/Makefile +++ b/Makefile @@ -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 diff --git a/log.c b/log.c new file mode 100644 index 00000000..8d292139 --- /dev/null +++ b/log.c @@ -0,0 +1,38 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifdef HAVE_CONFIG_H +#include +#endif + +#include +#include + +#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); + +} diff --git a/log.h b/log.h new file mode 100644 index 00000000..628f5b8d --- /dev/null +++ b/log.h @@ -0,0 +1,23 @@ +/*-*- Mode: C; c-basic-offset: 8 -*-*/ + +#ifndef foologhfoo +#define foologhfoo + +#include + +#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