每个技术人员都清楚,日志是软件系统中不可或缺的一部分,它能记录每时每刻的软件运行情况,是跟踪和定位任一时刻程序行为的重要手段。开发人员可以通过日志追根溯源,找到故障发生的根本原因并及时解决问题,同时也可以利用日志进行后续的系统维护和升级。
在 C/C++ 项目中,日志的重要性更加凸显。C/C++ 是一种底层语言,开发人员需要更加关注程序的执行细节和性能。通过使用日志,开发人员可以记录程序的关键信息和执行路径,帮助定位和解决潜在的问题。
在传统的各种日志库和框架中,通常是以宏的方式来进行封装。而众所周知宏通常会在实际开发中产生大量难以预计的后果,因此在 C/C++ 中一直渴望一种能够取代宏来进行日志的操作。
幸运的是在 C++20 中,标准规定了 std::source_location 来获取当前信息并辅助日志的实现。