星期五, 6月 27, 2008

glib的message logging utility

glib提供了一個message logging utility可以讓我們可以在程式執行時輸出一些訊息,顯示程式目前的狀況或是遇到的錯誤。跟printf比起來,glib提供的message logging utility更加多樣化,可以根據不同的執行狀況設定不同等級的訊息。以下列出一個簡單的範例:

#include <glib.h>

int main()
{
    g_debug("%s", "this is a debug message");
    g_log("mytest", G_LOG_LEVEL_CRITICAL, "%s", "This is a critical message");
    g_log("mytest", G_LOG_LEVEL_INFO, "%s", "This is an info message");
    g_log("mytest", G_LOG_LEVEL_DEBUG, "%s", "This is another debug message");
    g_log("mytest", G_LOG_LEVEL_ERROR, "%s", "This is an error message");
    return 0;
}

編譯時記得要加上glib的header file所在位置(用-I)以及library的所在位置(用-L),在我的系統上是以下列方式編譯的:

gcc -g -o test_glog test_glog.c -I/usr/include/glib-2.0 -I/usr/lib/glib-2.0/include  -lglib-2.0

執行結果如下所示:

** (process:24480): DEBUG: this is a debug message

(process:24480): mytest-CRITICAL **: This is a critical message
mytest-INFO: This is an info message
(process:24480): mytest-DEBUG: This is another debug message

mytest-ERROR **: This is an error message
aborting...
已經終止 (core dumped)

沒有留言: