i3: Replace loglevels by a global debug logging

File-limited were not used nor really useful
Besides, they are painful to maintain in Makefile rules compared to the
benefit
This commit is contained in:
Quentin Glidic
2012-07-22 00:16:52 +02:00
committed by Michael Stapelberg
parent 1f682eb9c8
commit bdc078914b
11 changed files with 36 additions and 78 deletions

View File

@ -4,7 +4,7 @@
* i3 - an improved dynamic tiling window manager
* © 2009-2011 Michael Stapelberg and contributors (see also: LICENSE)
*
* log.c: Setting of loglevels, logging functions.
* log.c: Logging functions.
*
*/
#include <stdarg.h>
@ -29,10 +29,7 @@
#include "libi3.h"
#include "shmlog.h"
/* loglevels.h is autogenerated at make time */
#include "loglevels.h"
static uint64_t loglevel = 0;
static bool debug_logging = false;
static bool verbose = false;
static FILE *errorfile;
char *errorfilename;
@ -146,26 +143,11 @@ void set_verbosity(bool _verbose) {
}
/*
* Enables the given loglevel.
* Set debug logging.
*
*/
void add_loglevel(const char *level) {
/* Handle the special loglevel "all" */
if (strcasecmp(level, "all") == 0) {
loglevel = UINT64_MAX;
return;
}
for (int i = 0; i < sizeof(loglevels) / sizeof(char*); i++) {
if (strcasecmp(loglevels[i], level) != 0)
continue;
/* The position in the array (plus one) is the amount of times
* which we need to shift 1 to the left to get our bitmask for
* the specific loglevel. */
loglevel |= (1 << (i+1));
break;
}
void set_debug_logging(const bool _debug_logging) {
debug_logging = _debug_logging;
}
/*
@ -271,17 +253,17 @@ void errorlog(char *fmt, ...) {
/*
* Logs the given message to stdout while prefixing the current time to it,
* but only if the corresponding debug loglevel was activated.
* but only if debug logging was activated.
* This is to be called by DLOG() which includes filename/linenumber
*
*/
void debuglog(uint64_t lev, char *fmt, ...) {
void debuglog(char *fmt, ...) {
va_list args;
if (!logbuffer && !(loglevel & lev))
if (!logbuffer && !(debug_logging))
return;
va_start(args, fmt);
vlog((loglevel & lev), fmt, args);
vlog(debug_logging, fmt, args);
va_end(args);
}