如何获得像assert这样的实际行号?

时间:2013-12-27 05:16:01

标签: c++

我想写logger类,我想知道它是否可行。 考虑:

do_something_funny(&my_cat);
LOG::info("just did something funny with his cat");
cout<< LOG::getAllTxt();

输出:

[0.001s][main.cpp:5] - just did something funny with his cat

查看main.cpp:5。它是从这个文件的5行记录的

我应该在范围内使用函数,还是创建单例对象?

1 个答案:

答案 0 :(得分:8)

__LINE__包含当前行号。

请注意,为了有效地使用它,您必须从宏访问它。如果您只是调用日志记录功能,并且它访问__LINE__,它将在日志记录功能中报告行号。所以你可以定义:

#define LOGINFO(message) (LOG::info((message), __LINE__))