|
|
@@ -6,13 +6,44 @@ |
|
|
|
#include <stdarg.h> |
|
|
|
#include <stdio.h> |
|
|
|
#include <stdlib.h> |
|
|
|
#include <string.h> |
|
|
|
#include "egllog.h" |
|
|
|
|
|
|
|
#define MAXSTRING 1000 |
|
|
|
#define FALLBACK_LOG_LEVEL _EGL_DEBUG |
|
|
|
#define FALLBACK_LOG_LEVEL_STR "debug" |
|
|
|
|
|
|
|
static EGLint ReportingLevel = -1; |
|
|
|
|
|
|
|
/* XXX init this with an env var or something */ |
|
|
|
static EGLint ReportingLevel = _EGL_DEBUG; |
|
|
|
|
|
|
|
static void |
|
|
|
log_level_initialize (void) |
|
|
|
{ |
|
|
|
char *log_env = getenv ("EGL_LOG_LEVEL"); |
|
|
|
|
|
|
|
if (log_env == NULL) { |
|
|
|
ReportingLevel = FALLBACK_LOG_LEVEL; |
|
|
|
} |
|
|
|
else if (strcasecmp (log_env, "fatal") == 0) { |
|
|
|
ReportingLevel = _EGL_FATAL; |
|
|
|
} |
|
|
|
else if (strcasecmp (log_env, "warning") == 0) { |
|
|
|
ReportingLevel = _EGL_WARNING; |
|
|
|
} |
|
|
|
else if (strcasecmp (log_env, "info") == 0) { |
|
|
|
ReportingLevel = _EGL_INFO; |
|
|
|
} |
|
|
|
else if (strcasecmp (log_env, "debug") == 0) { |
|
|
|
ReportingLevel = _EGL_DEBUG; |
|
|
|
} |
|
|
|
else { |
|
|
|
fprintf (stderr, "Unrecognized EGL_LOG_LEVEL environment variable value. " |
|
|
|
"Expected one of \"fatal\", \"warning\", \"info\", \"debug\". " |
|
|
|
"Got \"%s\". Falling back to \"%s\".\n", |
|
|
|
log_env, FALLBACK_LOG_LEVEL_STR); |
|
|
|
ReportingLevel = FALLBACK_LOG_LEVEL; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
@@ -25,6 +56,12 @@ _eglLog(EGLint level, const char *fmtStr, ...) |
|
|
|
va_list args; |
|
|
|
char msg[MAXSTRING]; |
|
|
|
const char *levelStr; |
|
|
|
static int log_level_initialized = 0; |
|
|
|
|
|
|
|
if (!log_level_initialized) { |
|
|
|
log_level_initialize (); |
|
|
|
log_level_initialized = 1; |
|
|
|
} |
|
|
|
|
|
|
|
if (level <= ReportingLevel) { |
|
|
|
switch (level) { |