最近项目需要简单输出日志,用巨大的日志类未免繁琐,于是写了这个简单的日志函数,带日期,MFC下可以直接使用。
直接上代码:
template <typename T>
std::string ConvertToStringS(T value)
{
std::stringstream ss;
ss << value;
return ss.str();
}
static std::string LogInfo(const std::string sInfo, bool s_bTimePrefix = true)
{
SYSTEMTIME sysTime = { 0 };
GetLocalTime(&sysTime);
std::string sFinalInfo;
if (s_bTimePrefix)
{
sFinalInfo = "[" + ConvertToStringS(sysTime.wMonth) + ConvertToStringS(sysTime.wDay) + "-" + \
ConvertToStringS(sysTime.wHour) + "-" + ConvertToStringS(sysTime.wMinute) + "-" + ConvertToStringS(sysTime.wSecond) + "-" + \
ConvertToStringS(sysTime.wMilliseconds) + "]:" + sInfo;
}
else
{
sFinalInfo = sInfo;
}
return sFinalInfo;
}
static int LogInfoToFile(const std::string sInfo, const std::string& sFilePath, bool bAppend = false)
{
std::vector<std::string> vInfos;
vInfos.push_back(LogInfo(sInfo));
return SaveTXTUtf8S(vInfos, sFilePath, bAppend);
}
使用方法如下:
//输出日志代表成功进入
std::string sTmpPath = getenv("Temp");
// 目录结尾
if (sTmpPath.length() && sTmpPath[sTmpPath.length() - 1] != '\\')
{
sTmpPath += '\\';
}
//路径
std::string sLogPath = sTmpPath + "xxx.log";
LogInfoToFile("exe成功启动...", sLogPath);
使用效果如下图:
谨此记录。