获取输出信息所在代码方法与行号(可用于error 日志定位)

获取输出信息所在代码方法与行号

获取输出信息所在代码方法、行号 C/C++代码实现
可用于辅助输出日志定位,与其他预定义宏组合可输出详细信息

代码实现:

#include <string>
#include <stdlib.h>

#define MessageLog(ch)   WriteLog(ch, __LINE__)

// __DATE__         当前日期,以“MMM DD YYYY”格式表示的字符串常量。
// __TIME__         当前时间,以“HH : MM:SS”格式表示的字符串常量。
// __FILE__         当前文件名,字符串常量。
// __LINE__         当前行号,十进制常量。
// __FUNCTION__     函数名,为C语言设计
// __FUNCDNAME__    一个函数的修饰名
// __FUNCSIG__      一个函数的签名

/*
 *@bref   获取输出信息所在方法、所在行(可用于error 日志定位)
 */
std::string WriteLog(const char *ch, const int line)
{
    std::string tmpStr = __FILE__;
    tmpStr.append(" ");
    tmpStr.append(__FUNCTION__);
    tmpStr.append("\t");
    char lineId[8] = { 0 };
    _itoa_s(line, lineId, 10);
    tmpStr.append(" ");
    tmpStr.append(lineId);
    tmpStr.append("\t");
    tmpStr.append(ch);
    tmpStr.append(" \n");
#if _DEBUG
    printf_s("%s \n", tmpStr.c_str());
#endif
    return tmpStr;
}

测试方法:

int main()
{
    std::string strRet = MessageLog("test log message ");
    system("pause");
    return 0;
}

测试结果:
d:\project\console\main.cpp WriteLog 39 test log message

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

奋斗羊羊

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值