|
static void dummy_log(const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer user_data)
{
return;
}
void set_log_level(const char* progname)
{
char* basename = strrchr(progname, '/');
char* log_level_env_name = NULL;
char* log_level_evn_value = NULL;
basename = basename != NULL ? basename+1 : (char*)progname;
log_level_env_name = g_strdup_printf("%s_LOG_LEVEL", basename);
log_level_evn_value = getenv(g_strup(log_level_env_name));
if(log_level_evn_value != NULL)
{
unsigned int i = 1 << (~G_LOG_LEVEL_MASK);
unsigned int max_log_level = atoi(log_level_evn_value);
unsigned int log_level = 0;
for(; i > max_log_level; i--)
{
log_level = 1 << i;
g_log_set_handler(NULL, (GLogLevelFlags)log_level, dummy_log, NULL);
}
}
g_free(log_level_env_name);
return;
}
|