c++输出简单日志带日期时间功能

2023-12-21 13:55:28

最近项目需要简单输出日志,用巨大的日志类未免繁琐,于是写了这个简单的日志函数,带日期,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);

使用效果如下图:

谨此记录。

文章来源:https://blog.csdn.net/autumoonchina/article/details/135125528
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。