Vala如何支持C语言的__function__ __file__ __line__宏?

时间:2016-03-17 09:06:40

标签: vala

我需要添加一些带有源文件名,函数名称

的日志信息

行号等...

我查了官方文档,但没找到......

那么,怎么做呢?

1 个答案:

答案 0 :(得分:2)

这通常是通过GLib logging完成的。

例如,试试这个Vala应用程序:

int main (string[] args) {
    // info () is not shown by default, set G_MESSAGES_DEBUG=all in your shell to see them
    info ("Hello World");
    warning ("Hello World");
    //assert_true (false);
    // error () terminates the program
    error ("Hello World");
    return 0;
}

输出结果为:

$ G_MESSAGES_DEBUG=all src/glib_logging_test 
** INFO: glib_logging_test.vala:4: Hello World

** (process:10129): WARNING **: glib_logging_test.vala:5: Hello World

** (process:10129): ERROR **: glib_logging_test.vala:9: Hello World
Trace/Breakpoint ausgelöst

除了G_DEBUG之外,您还可以设置G_MESSAGES_DEBUG,请参阅running GLib applications

您也可以使用Log.set_handler ()安装a custom handler

对于与C宏相当的原始信息,还有Log.FILELog.LINELog.METHOD