lano
Aktives Mitglied
Moin.
Ich überlege wie ich am besten Meldungen aus dem Programm ausgeben lassen kann.
Ich hab das ganze mal LOGLEVEL genannt, aber um die syslog oder vgl gehts mir gar nicht.
Ich will das Programm einfach nur gesprächiger machen.
Das hab ich mir so überlegt:
Im eigentlichen Programm sieht das dann quasi so aus:
Dem Programm geb ich das gewünschte Level einfach als Argument mit.
Man könnte auch
Nu frag ich mich ob ich das nicht kombinieren könnte. Im Moment wird ja alles kleiner gleich dem Loglevel ausgegeben.
Würde das überhaupt sinn machen?
Ich überlege wie ich am besten Meldungen aus dem Programm ausgeben lassen kann.
Ich hab das ganze mal LOGLEVEL genannt, aber um die syslog oder vgl gehts mir gar nicht.
Ich will das Programm einfach nur gesprächiger machen.
Das hab ich mir so überlegt:
LOGLEVEL_TRACE 6
LOGLEVEL_DEBUG 5
LOGLEVEL_INFO 4
LOGLEVEL_WARN 3
LOGLEVEL_ERROR 2
LOGLEVEL_FATAL 1
debug.h:
#ifndef _DEBUG_H
#define _DEBUG_H
extern int debug;
#define LOGLEVEL_TRACE 6
#define LOGLEVEL_DEBUG 5
#define LOGLEVEL_INFO 4
#define LOGLEVEL_WARN 3
#define LOGLEVEL_ERROR 2
#define LOGLEVEL_FATAL 1
#define LOGLEVEL_OFF 0
extern void dbprintf(int loglevel, const char *fmt, ...);
#endif
debug.c:
#include "debug.h"
#include <stdarg.h> /* va_end(), va_list, va_start(), vprintf() */
#include <stdio.h> /* vprintf() */
int debug = LOGLEVEL_OFF;
void dbprintf(int loglevel, const char *fmt, ...) {
if (loglevel <= debug) {
va_list ap;
va_start(ap, fmt);
vprintf(fmt, ap);
va_end(ap);
}
}
Im eigentlichen Programm sieht das dann quasi so aus:
dbprintf(LOGLEVEL_FATAL, "Cannot open database: %s\n", sqlite3_errmsg(db));
Dem Programm geb ich das gewünschte Level einfach als Argument mit.
--log 4
zBMan könnte auch
--log-warn
--log-fatal
usw nehmen aber egal.Nu frag ich mich ob ich das nicht kombinieren könnte. Im Moment wird ja alles kleiner gleich dem Loglevel ausgegeben.
Würde das überhaupt sinn machen?