设置glib的log级别

     glib提供了一系列的log函数,像g_message、g_critical、g_warning、g_debug和g_error等,可以根据信息的类别调用不同的函数。 

    在我们的程序中,为了调试方便,很多地方调了g_debug,结果程序运行起来后,终端上的信息打印得眼花缭乱,不但影响性能,而且把真正有用的信息淹没掉了。    

    Glib既然提供了log级别,自然可以按log级别加以过滤。不过稍微有点麻烦,可以按下列方式实现:

 

    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

     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;

    }

    

    

    通过设置 ”可执行文件名(大写)_LOG_LEVEL”环境变量,可以过滤不同严重程度的LOG信息,其取值为1-7,值越大,打印的信息越多。

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值