我之前用Qt框架下,设计了一个“打印日志”的功能(点击打开链接),利用了Qt框架的一些机制,并调用了一些的Qt框架函数。现在,我需要编写一个纯C++的“日志打印”功能。(事实上,还是调用了一些windows系统函数)
一、日志打印函数
我设计的是一个全局函数,而不是一个全局变量来实现log文件管理和输出。全局变量会导致“不可重入”,在多线程环境下,会概率性打印出错。
void CCommon::PrintLog(string str)
{
SYSTEMTIME sys;
::GetLocalTime(&sys);
std::ofstream ofs;
ofs.open("driver.log", std::ios_base::in | std::ios_base::app);
ofs << "[" << sys.wHour << ":" << sys.wMinute << ":" << sys.wSecond <&